4

グレイルでのユニットテストで奇妙な問題が発生しています。モックオブジェクトを保存しようとすると、NullPointerExceptionがスローされます。

 java.lang.NullPointerException
at org.grails.datastore.mapping.engine.NativeEntryEntityPersister.persistEntity(NativeEntryEntityPersister.java:798)
at org.grails.datastore.mapping.engine.EntityPersister.persist(EntityPersister.java:130)
at org.grails.datastore.mapping.core.AbstractSession.persist(AbstractSession.java:477)
at org.grails.datastore.gorm.GormInstanceApi.doSave(GormInstanceApi.groovy:166)
at org.grails.datastore.gorm.GormInstanceApi$_save_closure4.doCall(GormInstanceApi.groovy:143)
at org.grails.datastore.mapping.core.DatastoreUtils.execute(DatastoreUtils.java:301)
at org.grails.datastore.gorm.AbstractDatastoreApi.execute(AbstractDatastoreApi.groovy:34)
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:142)
at it.rascio.ConverterServiceTests.testConvert(ConverterServiceTests.groovy:64)

私が持っているテストのようなもの:

@TestFor(ConverterService)
@TestMixin(GrailsUnitTestMixin)
@Mock([MyObj1, MyObj2, LittleObject])
class ConverterServiceTests{
   def littleObject;
   void setUp(){
         littleObject = new LittleObject(prop1: 'hello', prop2: 'world')
   }

   void testConvert(){
    MyObj1 obj = new MyObj1()
    obj.prop = 'my property'
    obj.littleObject = littleObject
    obj = obj.save(flush:true, failOnError: true)

    MyObj2 b = new MyObj2()
    b.obj1Id = obj.id;

    assert service.convert(b) == null;


}

.saveメソッドを呼び出すと、例外がスローされます。littleObjectを削除すると機能することを確認しました。誰かがこの例外が何であるかについての考えを持つことができますか?

4

1 に答える 1

7

クラスMyObj1に他のタイプの埋め込みプロパティが含まれている場合、または他のカスケード保存がある場合は、これらのクラスを@Mockアノテーションリストに追加する必要があります。

于 2012-07-02T10:19:28.597 に答える