我最近升级到grails 1.1.1,虽然我的应用程序工作正常,但我的测试存在一些严重问题:
对于单元测试,一些模拟失败,似乎从域类调用方法的任何东西都不起作用,例如
def boolean isParameterized() {
return (parameters != null && !parameters.isEmpty())
}
由控制器中的if语句调用,并且在控制器的测试中(扩展ControllerUnitTestCase)创建此模拟
reportDefinitionControl.demand.isParameterized { ->
return false
}
但是当我运行测试时,isParametrized是真的,因为模拟的实例将isParametrized为false,因为参数为空,这更加令人困惑。
对于我的集成测试,似乎应用程序无法编译,我收到错误消息,如
[INFO]编译错误:编译失败
[INFO]运行集成测试时出错:java.lang.ClassNotFoundException:project.alert.AlertTypeTests
[警告] java.lang.ClassNotFoundException:project.alert.AlertTypeTests
有人有任何提示吗?
答案 0 :(得分:0)
也许groovy正在检查isParametrized是否为null,并且由于它包含闭包而得出结论。
你正在测试:false == reportDefinitionControl.isParametrized()
或false == reportDefinitionControl.isParametrized
?
答案 1 :(得分:0)
我认为你可能在'isParameterized'
之后缺少等号reportDefinitionControl.demand.isParameterized = { - > return false}
问候。