Grails服务注入集成测试

Chr*_*ton 0 service grails

我有一个非常简单的Grails服务:

class UserService {
    def returnHi() { return "Hi" }    
}
Run Code Online (Sandbox Code Playgroud)

我正试图在集成测试中访问该服务,如下所示:

def testService() {
  UserService userService
  assertEquals( "Hi", userService.returnHi() )
}
Run Code Online (Sandbox Code Playgroud)

为什么我会失败:java.lang.NullPointerException:无法在null对象上调用方法returnHi()?

谢谢你的时间

dro*_*ggo 5

将'def userService'作为您的类字段而不是放入方法内部就足够了.在集成测试中,bean的注入与控制器,服务和其他bean相同.

做类似的事情:

class MyTests {
    def userService

    void serviceTest(){
        assert userService.returnHi(), 'Hi'
    }        
}
Run Code Online (Sandbox Code Playgroud)

PS确保服务名称正确并以camelCase编写.