2015-04-23 4 views
0

Я использую Kiwi в проекте и не совсем понимаю, когда использовать mock против nullMock. Вот что в настоящее время предоставляет документацию Киви:Kiwi: конкретная разница между mock и nullMock?

Простой фиктивный объект будет вызывать исключение, когда он принимает селектор или сообщение шаблон, который он не ожидает. Ожидаемые сообщения автоматически добавляются к макету, когда ожидаются нулевые или ожидающие ожидания используются на макет.

Если вы не хотите, чтобы mocks получал другие сообщения, и не хотите, чтобы исключались исключения из , используйте нулевой макет (также известный как пустой объект ).

Это какой сценарий повлияет на эту разницу?

ответ

0

Null mocks имеют приятную возможность отвечать на все возможные сообщения, отправляемые им, это означает, что вам не нужно вручную настраивать каждый метод, который будет вызван на этот макет. Обычные издевки не имеют этого, вам нужно будет подготовить их, если вы будете вводить их в качестве зависимостей.

В большинстве случаев вы будете использовать , поскольку вас обычно интересует, вызван ли какой-либо метод, так как в любом случае вы тестируете другие методы макета в других тестах.

Это приходит с преимуществом рекламных недостатками:

  • тестов с использованием null mocks может скрыть тонкие ошибки, как вы можете забыть проверить угловую случае срабатывает один из «других» методов
  • тестов с использованием null mocks разрабатываются быстрее, так как вам не нужно отслеживать каждый метод, который вызывает тестируемый метод, что также не очень хорошо, поскольку вы создаете прочную взаимосвязь между тестом и вашим кодом, что делает сложным рефакторинг

 Смежные вопросы

  • Нет связанных вопросов^_^