источника данных Я пытаюсь написать блок прецедент для контроллера Grails, который имеет следующую структуру:Grails модульное тестирование с несколькими
class MyController{
def save(){
def myDomain = new MyDomain(params)
business validation 1
business validation 2
myDomain.writedatasource.save()
business validation 3
business validation 4
}
}
Поскольку тест блока не загружает DataSource.groovy writedatasource не доступен во время модульного тестирования, так что тестовые примеры для «бизнес проверки 3» и «бизнес-проверки 4» терпят неудачу, как я получаю
groovy.lang.MissingPropertyException: нет такого свойства: writedatasource для класса: MYDOMAIN
Как я могу изменить свой тестовый пример для проверки сценариев проверки 3 и 4?
Тестовый пример прост и выглядит следующим образом:
void testSave(){
...setup...
controller.save()
assert conditions
....
}
Интересный вопрос. Вам придется издеваться над источником данных или даже лучше, если вместо этого вы напишете тест интеграции –
Согласитесь, что интеграционный тест, безусловно, выполнит эту работу, но у нас есть несколько примеров таких сценариев (почти 80% компонентов), поэтому, если мы будем писать тесты интеграции для каждый из них тогда, по существу, не будет никакого модульного тестирования. Даже если мы издеваемся над источником данных, как вы присоединяете его к myDomain, чтобы он был доступен контроллеру для создания myDomain.writedatasource.save(). –