высмеивает возвращаемое значение domainInstance.validate () - PullRequest
0 голосов
/ 18 января 2011

Я пишу спок модульный тест, который проверяет метод контроллера.

Тестируемое действие контроллера создает новый экземпляр объекта домена и вызовы проверяют его до того, как он сохранится. Есть ли в любом случае издеваться над вызовом domainInstance.validate (), поэтому я могу ли он вернуть все, что я хочу? Или я должен это скрыть инстанцирование и сохранение за методом обслуживания для достижения этой цели?

Я делаю это так, потому что в контексте модульного теста для Контроллер, ограничения доменного объекта не должны быть вовлечены. Я тестирую их в другом месте (в MyDomainClassTests, очевидно). Если я хотел принять это во внимание мой тест будет интеграция тест.

Ответы [ 2 ]

1 голос
/ 18 января 2011

Если вы поместили проверку не на сам экземпляр домена, а в службу, Вы могли бы позволить своему контроллеру взять Сервис в своем конструкторе (или, скорее, интерфейс сервиса). Пусть этот сервис обрабатывает проверку.

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

Для .net я могу порекомендовать Moq (http://code.google.com/p/moq/)

0 голосов
/ 15 февраля 2011

Через некоторое время я пришел к выводу, что то, что я хотел, довольно сложно. Если вы находитесь в сценарии, в котором у нет для использования mockDomain(), вы можете добавить метод метакласса groovy и его реализацию (вернуть true или false, в зависимости от того, что вам нужно)

Если вам делать нужен mockDomain (), потому что вам нужно смоделировать уже существующие экземпляры, у вас нет вариантов, по крайней мере сейчас, потому что mockDomain () и возиться с методами метакласса, которые фактически обеспечивает mockDomain, не перемешайте.

...