0
我使用grails create-service TaskCRUDService
創建了Grails服務。該命令在test\unit
文件夾中創建了grails-app\services
和TaskCRUDServiceSpec.groovy
中的文件TaskCRUDService.groovy
。如何測試我的Grails服務保存方法?
唯一的方法我TaskCRUDService
是
Task save(String name) {
Task task = new Task()
task.name = name
task.save(flush: true, failOnError: true)
}
我想測試這種方法的話,我已經填充了測試類由Grails的產生「測試的東西」方法的主體。所以這是我TaskCRUDServiceSpec
代碼:
@TestFor(TaskCRUDService)
class TaskCRUDServiceSpec extends Specification {
void "test something"() {
when:
Task t = service.save('task name')
then:
assert t.name == 'task name'
}
}
但測試不起作用。當我運行grails test-app
我得到
java.lang.IllegalStateException: Method on class [Task] was used outside of a Grails application. If running in the context of a test using the mocking API or bootstrap Grails correctly.
at TaskCRUDService.$tt__save(TaskCRUDService.groovy:29)
at TaskCRUDServiceSpec.test create(TaskCRUDServiceSpec.groovy:24)