代码之家  ›  专栏  ›  技术社区  ›  Matthias Hryniszak

在域类上模拟“save”方法

  •  1
  • Matthias Hryniszak  · 技术社区  · 14 年前

    我在grails1.3.3的单元测试中很难模拟save instance方法。我创建了一个名为Person的简单域类,它有一个名为“name”的属性(可以为null)。

    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$\u addValidateMethod\u closure83.doCall(MockUtils。groovy:973) 在grails.test.MockUtils$\u addDynamicInstanceMethods\u closure67.doCall(MockUtils。groovy:736) 在tutorial.PersonTests.testCanSavePerson(PersonTests。groovy:25)

    有人知道我做错了什么吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   stefanglase    14 年前