Grails - Как выполнить модульное тестирование addTo * - PullRequest
1 голос
/ 20 сентября 2010

Возможно ли модульное тестирование функций addTo * в Grails?

спасибо за вашу помощь.

Ответы [ 2 ]

6 голосов
/ 21 сентября 2010

Документация говорит в разделе 9.1 :

В Grails вы должны быть особенно внимательны к разнице между модульными и интеграционными тестами, потому что в модульных тестах Grails делаетне вводить какие-либо динамические методы, присутствующие во время интеграционных тестов и во время выполнения.

Вы должны либо использовать mockDomain(DomainClassName) в модульном тесте, либо написать интеграционный тест:

Grails украшает объект домена некоторыми динамическими методами, когда DomainClassGrailsPlugin получает настройку (doWithDynamicMethods).

2 голосов
/ 27 марта 2014

Я столкнулся с этой проблемой при обновлении с Grails 2.1.2 до Grails 2.3.x. Если раньше вам нужно было только смоделировать класс домена, который вы добавляете, теперь вам также нужно смоделировать добавляемый класс домена. Простой с аннотациями.

@TestFor(YourService)
@Mock([MyClass, MyOtherClass])
class YourServiceTests {
  .... //now myClass.addToMyOtherClasses(myOtherClassInstance) should work fine in your test or in the code being tested
}
...