Grails 2.4.4:服务不注入:集成测试
Grails 2.4.4: services does not inject: integration test
我有依赖服务的服务,例如:
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
您的测试用例应该扩展 class GroovyTestCase
或 IntegrationSpec
,仅此而已。当然依赖注入然后以通常的方式工作
class ParserServiceTest extends IntegrationSpec {
ParserService parserService
def "should not parse comment"() {
when:
...
def resultList = parserService.parseAnnotations(inputStream)
...
@TestFor
注释仅用于单元测试。集成测试像普通 bean 一样工作,因此如果您将服务定义为 class 中的属性,Grails/Spring 将在您的测试中注入您的依赖项,就像在 controller/service/domain class 中一样.
我有依赖服务的服务,例如:
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
您的测试用例应该扩展 class GroovyTestCase
或 IntegrationSpec
,仅此而已。当然依赖注入然后以通常的方式工作
class ParserServiceTest extends IntegrationSpec {
ParserService parserService
def "should not parse comment"() {
when:
...
def resultList = parserService.parseAnnotations(inputStream)
...
@TestFor
注释仅用于单元测试。集成测试像普通 bean 一样工作,因此如果您将服务定义为 class 中的属性,Grails/Spring 将在您的测试中注入您的依赖项,就像在 controller/service/domain class 中一样.