Grails mockDomain保存不保存

时间:2011-08-05 15:21:36

标签: unit-testing grails mocking

我正在为一些简单的方法编写单元测试。我遇到的问题是'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()
    }
}

1 个答案:

答案 0 :(得分:1)

问题是需要清理grails应用程序并重建项目。