mocking- все статьи тега


phpunit макет метод несколько вызовов с различными аргументами

Существует ли какой-либо способ определить различные макетные ожидания для различных входных аргументов? Например, у меня есть класс слоя базы данных DB. Этот класс имеет метод под названием "Query (string $query)", который принимает строку SQL-запроса на вход. Можно ли создать макет для этого класса (БД) и задать различные возвращаемые значения для различных вызовов метода запроса, которые зависят от входной строки запроса? ...

Как издеваться над LINQ для сущностей помощников, таких как " SqlFunctions.StringConvert ()'

Я использую EF 4 и пытаюсь юнит-тестировать следующую строку, используя Moq: var convertError = models .Where(x => SqlFunctions.StringConvert((decimal?) (x.convert ?? 0)) == "0") .Any(); И похоже, что SqlFunctions.StringConvert() бросит, если обнаружит, что контекст издевается. Это дает ошибку, говоря: Эта функция может быть вызвана только из LINQ в Entities Можно ли сказать SqlFunctions.StringConvert, чтобы вернуть макет объекта, чтобы я мог избавиться ...

В чем разница между mock & stub?

Я читал различные статьи о насмешках против stubbing в тестировании, в том числе насмешки Мартина Фаулера не окурки, но все равно не понимаю разницы. ...

Насмешливые статические методы с Mockito

Я написал фабрику для производства java.sql.Connection объекты: public class MySQLDatabaseConnectionFactory implements DatabaseConnectionFactory { @Override public Connection getConnection() { try { return DriverManager.getConnection(...); } catch (SQLException e) { throw new RuntimeException(e); } } } Я хотел бы проверить параметры, переданные в DriverManager.getConnection, но я не знаю, как издеваться над статическим методом. Я исполь ...

Использование общего метода Mockito "any()"

у меня есть интерфейс с методом, который ожидает массив Foo: public interface IBar { void doStuff(Foo[] arr); } я издеваюсь над этим интерфейсом с помощью Mockito, и я хотел бы утверждать, что doStuff() вызывается, но я не хочу проверять, какой аргумент передается - "все равно". Как написать следующий код с помощью any(), общий метод, вместо anyObject()? IBar bar = mock(IBar.class); ... verify(bar).doStuff((Foo[]) anyObject()); ...

В чем разница между насмешками и окурками на носорогах насмешек?

Я не играл достаточно с этим и обычно использую насмешки, но мне интересно, в чем разница между этими двумя и когда использовать один или другой на носорог издевается. обновление: Я также нашел ответ на мой вопрос Ayende это: разница между окурками и насмешками Вы можете получить фактическое определение этих терминов в этой статье: насмешки не окурки. Я хочу сосредоточьтесь на разнице с точки зрения носорога издевается. макет-это объект, на который мы можем установить ожидания, и который буд ...

Как я могу издеваться над сервисом, который возвращает обещание в модульном тесте Angularjs Jasmine?

у меня есть myService, который использует myOtherService, который делает удаленный вызов, возвращая обещание: angular.module('app.myService', ['app.myOtherService']) .factory('myService', [myOtherService, function(myOtherService) { function makeRemoteCall() { return myOtherService.makeRemoteCallReturningPromise(); } return { makeRemoteCall: makeRemoteCall }; } ]) чтобы сделать модульный тест для myService мне нужно, чтобы поглумиться ...

Как проверить строку в теле ответа с помощью mockMvc

у меня есть простой интеграционного тестирования @Test public void shouldReturnErrorMessageToAdminWhenCreatingUserWithUsedUserName() throws Exception { mockMvc.perform(post("/api/users").header("Authorization", base64ForTestUser).contentType(MediaType.APPLICATION_JSON) .content("{"userName":"testUserDetails","firstName":"xxx","lastName":"xxx","password":"xxx"}")) .andDo(print()) .andExpect(status().isBadRequest()) .andExpe ...

Как я могу издеваться над импортом модуля ES6 с помощью Jest?

Я начинаю думать, что это невозможно, но я все равно хочу спросить. Я хочу проверить, что один из моих модулей ES6 вызывает другой модуль ES6 определенным образом. С Жасмин это очень легко -- приложение код: // myModule.js import dependency from './dependency'; export default (x) => { dependency.doSomething(x * 2); } и тестовый код: //myModule-test.js import myModule from '../myModule'; import dependency from '../dependency'; describe('myModule', () => { it('calls the dependenc ...

Случайные данные в модульных тестах?

У меня есть коллега, который пишет юнит-тесты для объектов, которые заполняют свои поля случайными данными. Его причина в том, что он дает более широкий диапазон тестирования, так как он будет тестировать много разных значений, тогда как обычный тест использует только одно статическое значение. Я дал ему несколько различных причин против этого, основные из которых являются: случайные значения означают, что тест действительно не повторяется (что также означает, что если тест может случайно про ...

Использование МОК для модульного тестирования

Как можно использовать контейнер IoC для модульного тестирования? Полезно ли управлять mocks в огромном решении (50+ проектов) с помощью IoC? Какие-нибудь впечатления? Любые библиотеки C#, которые хорошо работают для использования его в модульных тестах? ...

Квадратный макет сервера дооснащения для тестирования

каков наилучший способ издеваться над сервером для тестирования при использовании квадратные рамки дооснащения. возможности: создать новую модификацию клиент и установите его в RestAdapter.Строитель.)(setClient(). Это включает в себя анализ объекта запроса и возврат json в качестве объекта ответа. реализовать этот аннотированный интерфейс как макет класса и использовать его вместо версии предоставлено RestAdapter.create () (не будет тестировать сериализацию gson) ? В идеале я хочу, чтобы из ...

Как издеваться над методом расширения CreateResponse на HttpRequestMessage

Я использую ASP.Net MVC 4 RC ApiController, и я пытаюсь провести модульный тест метода Get. этот метод использует метод CreateResponse, который находится на HttpRequestMessage, но я понятия не имею, как издеваться над этим или заставить его работать правильно. тело метода содержит следующее: MediaTypeHeaderValue header = new MediaTypeHeaderValue(versionedSmartBlock.ContentType); var response = Request.CreateResponse<SmartBlock>(HttpStatusCode.OK, versionedSmartBlock, header); в рамка ...

EasyMock: Методы Void

У меня есть метод, который возвращает void в классе, который является зависимостью класса, который я хочу проверить. этот класс огромен, и я использую только этот единственный метод из него. Мне нужно заменить реализацию этого метода для теста, поскольку я хочу, чтобы он делал что-то другое, и мне нужно иметь доступ к параметрам, которые получает этот метод. Я не могу найти способ сделать это в EasyMock. Я думаю, что знаю, как это сделать Mockito С помощью doAnswer но я не хочу добавлять другу ...

Подделка последовательного порта RS232

Я разрабатываю проект, который имеет ряд аппаратных датчиков, подключенных к машине развертывания через последовательные порты RS232. но ... Я разрабатываю на машине без физических последовательных портов RS232, но я хотел бы сделать поддельные последовательные порты, к которым я могу подключиться и выводить данные с целью подделки ввода от аппаратных датчиков. кто-нибудь знает способ создать поддельный последовательный порт и управлять им на Windows XP? ...

Как можно издеваться / заглушка python модуль, как urllib

Мне нужно проверить функцию, которая должна запрашивать страницу на внешнем сервере с помощью urllib.urlopen (он также использует urllib.urlencode). Сервер может быть отключен, страница может измениться; я не могу полагаться на него для теста. каков наилучший способ контролировать то, что urllib.urlopen возвращается? ...

Макет конструктора с параметром

у меня есть класс, как показано ниже: public class A { public A(String test) { bla bla bla } public String check() { bla bla bla } } логика в конструкторе A(String test) и check() это то, что я пытаюсь высмеять. Я хочу любые звонки, как:new A($$$any string$$$).check() возвращает пустой строкой "test". пробовал: A a = mock(A.class); when(a.check()).thenReturn("test"); String test = a.check(); // to this point, everything works. test shows as "tests" wh ...

насмешливое окно.местоположение.href в Javascript

У меня есть некоторые модульные тесты для функции, которая использует окно.местоположение.href -- не идеально я бы скорее передал это, но это невозможно в реализации. Мне просто интересно, можно ли издеваться над этим значением, фактически не заставляя мою страницу тестового бегуна фактически перейти на URL. window.location.href = "http://www.website.com?varName=foo"; expect(actions.paramToVar(test_Data)).toEqual("bar"); Я использую jasmine для своей платформы модульного тестирования ...

Данные базы данных, необходимые в интеграционных тестах; созданные с помощью вызовов API или с использованием импортированных данных?

этот вопрос является более или менее агностическим языком программирования. Однако, поскольку я в основном в Java в эти дни, именно там я буду рисовать свои примеры. Я также думаю о случае ООП, поэтому, если вы хотите протестировать метод, вам нужен экземпляр этого класса методов. A основные правила на тесты заключается в том, что они должны быть автономными, и это может быть достигнуто путем изоляции класса от его зависимости. Есть несколько способов сделать это и это зависит от того, если вы ...