У меня есть простой Grails контроллер:Grails: Unit метод контроллера тестирования с доменом классом
class AuthorController {
def index(){
def authors = Author.findByFirstName("Albert")
render (view: "author-page", model: ["authors":authors])
}
}
Здесь автор является классом домена, который отображается в виде таблицы в базе данных SQL.
Я пытаюсь написать модульный тест для него, как это:
import grails.test.mixin.Mock
@Mock(Author)
class AuthorControllerSpec extends Specification {
void "when index is called, authorPage view is rendered"() {
when:
controller.index()
then:
view == "/author-page"
}
}
Но когда я запускаю этот тест, я получаю java.lang.IllegalStateException: Метод на классе [ком .mypackage.Author] использовался вне приложения Grails. Если вы выполняете в контексте теста, используя насмешливый API или загрузочный Grails правильно.
Может ли кто-нибудь сказать мне, как правильно проверить мои действия? У меня возникают проблемы с издевательством над методом Author.findByFirstName().
Я использую Grails 2.4.2
Спасибо.
Спасибо. Я использую @TestFor наверху, все равно не работает. Скобки отсутствуют. Спасибо, что поймал это. Я удалил его. – Stealth