我有一个非常简单的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/

10-10 13:59