我有一个非常简单的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()?
谢谢你的时间
将'def userService'作为您的类字段而不是放入方法内部就足够了.在集成测试中,bean的注入与控制器,服务和其他bean相同.
做类似的事情:
class MyTests {
def userService
void serviceTest(){
assert userService.returnHi(), 'Hi'
}
}
Run Code Online (Sandbox Code Playgroud)
PS确保服务名称正确并以camelCase编写.
| 归档时间: |
|
| 查看次数: |
2726 次 |
| 最近记录: |