Как проверить grails Criteria query?

первое сообщение здесь и, надеюсь, актуально для многих.

Я работаю над написанием интеграционных тестов для домена, и в этом домене у меня есть запрос с использованием 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 и читал много справочников, и я удивлен, что этого нет во всех книгах, которые я прочитал до сих пор. Я надеюсь, что это просто моя ошибка, и ее легко проверить. Я ценю любую помощь и благодарю за чтение этого длинного поста.

Младший

7
задан bacchus 3 June 2011 в 21:44
поделиться