我很难在Grails 1.3.3的单元测试中模拟save实例方法。我创建了一个名为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 at grails.test.MockUtils $ _addValidateMethod_closure83.doCall(MockUtils.groovy:973) at grails.test.MockUtils $ _addValidateMethod_closure84.doCall(MockUtils.groovy:1014) at grails.test.MockUtils $ _addDynamicInstanceMethods_closure67.doCall(MockUtils.groovy:736) at grails.test.MockUtils $ _addDynamicInstanceMethods_closure67.doCall(MockUtils.groovy) 在tutorial.PersonTests.testCanSavePerson(PersonTests.groovy:25)
而第25行恰好是在新创建的实例上调用save()的行。
有谁知道我做错了什么?