2010-07-15 96 views
1

我在Grails 1.3.3的单元测试中很难嘲笑保存实例方法。我创建了一个名为Person的简单的域类,它有一个名为“name”的属性(可为空)。嘲讽域类上的“保存”方法

package tutorial 

class Person { 

    String name 

    static constraints = { 
     name nullable: true 
    } 
} 

在我的测试,我试图做一些事情,我的文档中找到:但是当我运行测试我得到什么

class PersonTests extends GrailsUnitTestCase { 
    public void testCanSavePerson() { 
     def testInstances = [] 
     mockDomain(Person, testInstances) 
     assertEquals(0, Person.count()) 
     new Person(name: "Bob").save() 
     assertEquals(1, Person.count()) 
    } 
} 

是个例外:

显示java.lang.NullPointerException 在grails.test.MockUtils $ _addValidateMethod_closure83.doCall(MockUtils.groovy:973) 在grails.test.MockUtils $ _addValidateMethod_closure84.doCall(MockUtils.groovy:1014) 在grails.test.MockUti LS $ _addDynamicInstanceMethods_closure67.doCall(MockUtils.groovy:736) 在grails.test.MockUtils $ _addDynamicInstanceMethods_closure67.doCall(MockUtils.groovy) 在tutorial.PersonTests.testCanSavePerson(PersonTests.groovy:25)

,而线25正是在新创建的实例上调用save()的那个。

有谁知道我做错了什么?

+0

奇怪的是,它适用于1.3.2和1.3.1 ...我想我将不得不提交一份错误报告。 – 2010-07-15 20:35:10

回答

0

这是Grails 1.3.3中的一个已知错误。详细了解它并在关联的JIRA票证GRAILS-6482中找到解决方法。

+0

谢谢!解决方法为我工作。 – 2010-07-15 20:52:47