我有依赖服务的服务,如:
class ParserService {
def depService;
private def parseLine(lineParts) {
...
def set = depService.findItemByName(tmpModule.name);//depService == null
...
我尝试实现集成测试,如:
@TestFor(ParserService)
class ParserServiceTest extends IntegrationSpec {
def "should not parse comment"() {
when:
...
def resultList = service.parseAnnotations(inputStream);
resources.groovy:
beans = {
}
我有NullPointerException:depService - null
答案 0 :(得分:1)
您的测试用例应该扩展课程GroovyTestCase
或IntegrationSpec
,这就是它。当然,依赖注入然后以通常的方式工作
class ParserServiceTest extends IntegrationSpec {
ParserService parserService
def "should not parse comment"() {
when:
...
def resultList = parserService.parseAnnotations(inputStream)
...
答案 1 :(得分:1)
@TestFor
注释仅适用于单元测试。集成测试的工作方式与普通bean类似,因此如果将服务定义为类中的属性,Grails / Spring会在测试中注入依赖项,例如在控制器/服务/域类中。