我正在为一些简单的方法编写单元测试。我遇到的问题是'save'对我的域对象不起作用,即使域应该被模拟。在域对象上调用validate时,它返回true。我甚至用try / catch包围了这个对象,以确保它没有抛出任何奇怪的错误,事实并非如此。以下代码用于通话和测试。
void test()
{
mockDomain(MyDomain)
Map map1= ["asdf":" "]
Map map2 = ["asdf":123]
InputObject input = new InputObject()
input.setForeignId("1") //not a constraint
input.setMap1(map1)
input.setMap2(map2 )
service.methodUnderTest(profile)
List list = MyDomain.getAll()
assertEquals 1, l.size() //FAILS
}
def persistPublishGuids(InputObject input)
{
try{
HashMap map1 = input.map1
for ( e in map1 )
{
String key= e.getKey()
String value = e.value
long size = input.map2.get(key)
MyDomain domain = new MyDomain (id:guid, field1:value, field2:input.foreignId, field3:size)
domain.save()
}
} catch(ex)
{
ex.printStackTrace()
}
}
答案 0 :(得分:1)
问题是需要清理grails应用程序并重建项目。