【发布时间】:2014-02-12 01:48:22
【问题描述】:
当使用生成的集成测试 (grails create-integration-test package.ServiceName) 时,我无法在测试中使用注入的服务 - 在 grails 插件中。
它会抛出一个非常无用的 NullPointerException
然而,同样的过程——但在 grails 应用程序中使用(grails create-app)完全没有问题。
您可以通过以下方式复制:
> grails create-plugin myServicePlugin
>grails test-app //按预期通过
>grails create-service testing.DummyService
更改\myServicePlugin\test\unit\testing\DummyServiceSpec.groovy
改变
void "test something"() {
}
到
void "test something"() {
expect:
def x = true
}
>grails test-app //通过
>grails create-integration-test testing.DummyService
更改\myServicePlugin\test\integration\testing\DummyServiceSpec.groovy
改变
void "test something"() {
}
到
void "test something"() {
expect:
def x = true
}
>grails test-app integration: //按预期通过
到目前为止一切顺利。现在编辑DummyService 来做一些事情 errmm.. Dummy-ish
更改\myServicePlugin\grails-app\services\testing\DummyService.groovy
添加
def dummySpit(){
return true
}
def serviceMethod(){}之后
现在将服务注入到测试规范中
更改\myServicePlugin\test\integration\testing\DummyServiceSpec.groovy
添加def dummyService
下面
class DummyServiceSpec extends Specification {
并将"test something" 方法体更改为:
expect:
assert dummyService.dummySpit()
这就是世界倒塌的地方。
>grails test-app integration:
|Loading Grails 2.3.5
|Configuring classpath
.
|Environment set to test
...............
|Compiling 1 source files
........
|Running without daemon...
.......................................
|Compiling 1 source files
.
|Running 1 integration test...
|Running 1 integration test... 1 of 1
Failure: |
test something(testing.DummyServiceSpec)
|
java.lang.NullPointerException
at testing.DummyServiceSpec.test something(DummyServiceSpec.groovy:22)
|Completed 1 integration test, 1 failed in 0m 0s
.Tests FAILED
|
- view reports in G:\workspace\myServicePlugin\target\test-reports
Error |
Forked Grails VM exited with error
【问题讨论】:
-
我知道这是我的第一个 SO 帖子.. 但为什么对这个问题投了反对票?我可以理解对答案投反对票……但是问题是什么?它有什么问题?
-
通过删除琐碎的东西并强调问题的要点来编辑问题。
-
DummyServiceSpec 的第 22 行是什么?
标签: grails plugins dependency-injection integration-testing grails-2.3