первое сообщение здесь и, надеюсь, актуально для многих.
Я работаю над написанием интеграционных тестов для домена, и в этом домене у меня есть запрос с использованием withCriteria ()
метод. Я поискал по всей сети и нашел много, что дает вам подробные инструкции о том, как имитировать запрос критериев, но ни одного о том, как точно его протестировать.
Я пробовал имитировать домен, используя mockDomain (domain, list)
и настройку домена для использования теста в setUp ()
, затем вызов критериев, и я ничего не получаю.
Я сделал похожий findBy
здесь и получил результаты, но не совсем те, которые я искал. Я почти уверен, что это не только мой запрос, но и критерии, которые я читал в нескольких местах, критерии не работают при тестировании услуг. Этот запрос до сих пор работал у меня в приложении, но я хочу иметь несколько тестов, к которым я могу обратиться позже, если мой код изменится.
На самом деле я сделал то, что предлагали многие, и вытащил код для запрос и сделал его статическим методом в моем домене, чтобы я мог имитировать его для тестов, которые его используют, но теперь я застрял в том, как на самом деле протестировать эту часть. Нужно ли мне запускать приложение и просто проводить функциональное тестирование с этой точки зрения, или есть какой-то способ сделать это в модульном / интеграционном тестировании grails. Я отправлю свой запрос ниже.
static Attribute getDefinitionsUsingCriteria(List categoryNames, List types){
def definitions = Definition.withCriteria() {
and {
'in'('type', types)
if (categoryNames) {
categories {
'in'('name', categoryNames)
}
}
}
}
return definitions
}
Definitions имеет строковый тип свойства и имеет категории свойств типа Set
, что каждый элемент в этом наборе имеет свойство name String
.
Я все еще новичок в grails и читал много справочников, и я удивлен, что этого нет во всех книгах, которые я прочитал до сих пор. Я надеюсь, что это просто моя ошибка, и ее легко проверить. Я ценю любую помощь и благодарю за чтение этого длинного поста.
Младший