我选择了一个 Grails 项目,我相信它是从 Grails 1.xx 版本升级而来的。
使用 Grails CLI,我可以成功编译代码并构建 WAR,但是当我运行“grails test-app -unit”命令时,超过 1/2 的测试失败。
当我在 GGTS 中运行 JUnit 测试时,测试通过?!?!?。在 GGTS 中运行上述 Grails 命令会产生与上面强调的相同的失败。
主要的失败原因似乎是 GMock,在每个堆栈跟踪的顶部可以看到以下输出:
groovy.lang.MissingMethodException:没有方法签名:org.gmock.internal.metaclass.MockProxyMetaClass$2.doCall() 适用于参数类型:() 值:[]
发生此故障的示例代码行是:
样品 A
aService.dbWrapper = mock()
aService.dbWrapper.getDB().returns(mockDB) // failure on this line
样品 B
aService.anotherService = mock()
aService.anotherService.getSource(ID).returns(SOURCE) // failure on this line
我使用以下配置:
- GMock 0.8.3
- 圣杯 2.2.0
- Groovy 2.0.5
- GGTS 3.2.0
任何人都可以解释为什么使用 Grails CLI 测试以这种方式失败,但在作为 JUnit 测试运行时在 GGTS 中运行良好?