Grails 2.4.4:服务不注入:集成测试

时间:2015-06-04 07:41:25

标签: grails integration-testing spock

我有依赖服务的服务,如:

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

2 个答案:

答案 0 :(得分:1)

您的测试用例应该扩展课程GroovyTestCaseIntegrationSpec,这就是它。当然,依赖注入然后以通常的方式工作

class ParserServiceTest extends IntegrationSpec {
   ParserService parserService

   def "should not parse comment"() {
    when:
    ...
    def resultList = parserService.parseAnnotations(inputStream)
...

答案 1 :(得分:1)

@TestFor注释仅适用于单元测试。集成测试的工作方式与普通bean类似,因此如果将服务定义为类中的属性,Grails / Spring会在测试中注入依赖项,例如在控制器/服务/域类中。