3

オブジェクトmongodbのプロパティの実行時の変更(モルフィアのsaveメソッドを使用)であるセレンテストを作成し、このプロパティが変更されたかどうかを確認します。しかし、結果変数は発生していません。すぐに節約する方法は?

%{
    // load models
    // deleted = true
}%

#{selenium}            
    click('link=Delete')
    <!--                 
    SomeClass someObj = SomeClass.findById(id);
    someObj.deleted = true;
    someObj.save();
    -->
#{/selenium}

%{
    models.SomeClass someObj2 = models.SomeClass.find("fieldName", "fieldValue").get();
    boolean expectedStatus = someObj2.deleted;
    org.junit.Assert.assertTrue(expectedStatus);
}%

Save メソッドは、テスト中に MongoDB の値を変更しません。テスト終了後に作業を保存します。これは問題です

4

1 に答える 1

0

ここで使用WriteConcernします。書き込み操作(あなたの場合は削除)を行うとき、「書き込み懸念」を指定して、データが(たとえば)ディスクにフラッシュされてXに複製されたときにのみ書き込みが完了したと見なされるようにシステムに伝えることができます奴隷。以下は Morphia の例です。

morpiaDao.delete(company, new WriteConcern(true));
于 2012-05-15T13:47:25.463 に答える