我有一个非常简单的Grails服务:
class UserService {
def returnHi() { return "Hi" }
}
我正在尝试通过集成测试访问该服务,如下所示:
def testService() {
UserService userService
assertEquals( "Hi", userService.returnHi() )
}
为什么会失败:
java.lang.NullPointerException:无法在空对象上调用方法returnHi()吗?
谢谢你的时间
最佳答案
将“def userService”作为您的类字段就足够了,而不是将其放入方法内部就足够了。在集成测试中,bean的注入(inject)方式与 Controller ,服务和其他bean中的注入(inject)方式相同。
做类似的事情:
class MyTests {
def userService
void serviceTest(){
assert userService.returnHi(), 'Hi'
}
}
附言确保服务名称正确并用camelCase编写。
关于grails - 将Grails服务注入(inject)集成测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14417833/