2014-02-03 2 views
2

В моем модульном тесте я издеваюсь над сервисом (который является рефером тестируемого класса).Тест-драйв Grails проверяет макетный метод под названием

Как:

given: 
def mockXxService = mockFor(XxService) 
mockXxService.demand.xxx(1) {->} 
service.xxService = mockXxService 
when: 
service.yyy() 
then: 
// verify mockXxService's xxx method is invoked. 

Для моего модульного тестирования, я хочу, чтобы убедиться, что mockXxService.xxx() называется. Но файл grails document mockControl.verify() не работает для меня. Не знаете, как правильно использовать его.

Он очень похож на метод проверки mockito.

Кто-нибудь это знает?

ответ

2

Если вы хотите поведение, подобное Mockito, в модульных тестах Grails - просто используйте Mockito. Это гораздо удобнее, чем издевательские методы Грайля.

3

Вы используете spock для модульного тестирования, вы должны быть легко в состоянии использовать MockingApi контрольные вызовы Спока:

given: 
    def mockXxService = Mock(XxService) 
    service.xxService = mockXxService 
when: 
    service.yyy() 
then: 
    1 * mockXxService.xxx(_) //assert xxx() is called once 

Вы можете получить более глубокое представление о насмехаясь из spockframework docs.

Вы можете даже окурок и насмешка, что в то время как насмешливые заинтересованные услуги как:

def mockXxService = Mock(XxService) { 
    1 * xxx(_) 
} 
+0

Не работаю для меня. Он сказал: Слишком мало выписок за: 1 * xxx.yyy() (0 invocations) Непревзойденные вызовы (упорядочены по подобию): – ttt

+0

Это хороший знак. Тогда ты на правильном пути. Снова обратитесь к документам. Если возможно, обеспечите точную реализацию класса сервиса и использование в нем 'XxSevice'. Это может помочь. – dmahapatro

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