Unit testing Abstract classes in GroovymockForConstraintsTests абстрактного заводного класс
я задал вопрос о предыдущем модульном тестировании и насмешливом класс домена, но я не думаю, что я был достаточно специфичен. У меня есть класс домена:
package toplevel.domain
abstract class Party {
static hasMany = [roles:PartyRole]
static constraints = {
roles(nullable:true)
dateCreated(display:false)
lastUpdated(display:false)
}
List roles
Date dateCreated
Date lastUpdated
}
Вот мой блок тест:
import grails.test.*
import toplevel.domain.*
class PartyTests extends GrailsUnitTestCase {
Party party
protected void setUp() {
super.setUp()
party = [:] as Party
mockForConstraintsTests(Party, [party])
}
protected void tearDown() {
super.tearDown()
}
void testNullRolesIsValid() {
party.roles = null
assertTrue "The roles should be nullable", party.validate()
}
}
Вот результаты теста: Не удалось создать новый экземпляр класса [toplevel.domain.Party]!
org.codehaus.groovy.grails.exceptions.NewInstanceCreationException: Не удалось создать новый экземпляр класса [toplevel.domain.Party]! в grails.test.MockUtils.prepareForConstraintsTests (MockUtils.groovy: 540) в grails.test.MockUtils $ prepareForConstraintsTests.call (Неизвестный источник) в grails.test.GrailsUnitTestCase.mockForConstraintsTests (GrailsUnitTestCase.groovy: 111) в PartyTests.setUp (PartyTests.groovy: 9) на _GrailsTest_groovy $ _run_closure4.doCall (_GrailsTest_groovy: 203) в _GrailsTest_groovy $ _run_closure4.call (_GrailsTest_groovy) в _GrailsTest_groovy $ _run_closure2.doCall (_GrailsTest_groovy: 147) в _GrailsTest_groovy $ _run_closure1_closure19.doCall (_GrailsTest_groovy : 113) в _GrailsTest_groovy $ _run_closure1.doCall (_GrailsTest_groovy: 96) в TestApp $ _run_closure1.doCall (TestApp.groovy: 66) при gant.Gant $ _dispatch_closure4.doCall (Gant.gr oovy: 324) в gant.Gant $ _dispatch_closure6.doCall (Gant.groovy: 334) в gant.Gant $ _dispatch_closure6.doCall (Gant.groovy) в gant.Gant.withBuildListeners (Gant.groovy: 344) в gant.Gant.this $ 2 $ withBuildListeners (Gant.groovy) в gant.Gant $ this $ 2 $ withBuildListeners.callCurrent (Неизвестный источник) в gant.Gist.dispatch (Gant.groovy: 334) в gant.Gant.this $ 2 $ (Gant.groovy) на gant.Gant.invokeMethod (Gant.groovy) на gant.Gant.processTargets (Gant.groovy: 495) на gant.Gant.processTargets (Gant.groovy: 480) Вызвано : java.lang.InstantiationException
Не понимаю. Я создал экземпляр класса и передал его методу mockForConstraintsTests. Что я делаю не так?