2010-07-15 4 views
1

Мне сложно издеваться над методом экземпляра save в моих модульных тестах в Grails 1.3.3. Я создал простой класс домена с именем Person, у него есть одно свойство (nullable), называемое «name».Отказывание метода «save» в классах доменов

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 ... Наверное, мне придется записать отчет об ошибке. –

ответ

0

Это уже известная ошибка в Grails 1.3.3. Узнайте больше об этом и найдите обходной путь в соответствующем билете JIRA GRAILS-6482.

+0

Спасибо! Обходной путь работал на меня. –