2012-04-25 68 views
3

我寫了selenium測試,它是對象mongodb(使用morphia的保存方法)的屬性的運行時更改,然後檢查此屬性是否更改。但結果變量沒有發生。如何立即節約?玩!框架1.2.4 - 立即從morphia保存

%{ 
    // 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); 
}% 

保存方法在測試過程中不會更改MongoDB中的值。測試結束後保存工作。這是一個問題

+0

我使用1.2.4 vervion的播放!框架 – 2012-04-25 07:01:45

+0

嘿!不要以爲我明白你的問題,預期的結果是什麼,你得到的結果是什麼? – kritzikratzi 2012-04-25 11:29:14

+0

好的。我有同樣的問題http://stackoverflow.com/questions/8488565/play-framework-immediate-save但我不使用JPA。我使用Morphia插件作爲播放框架。 MongoDB中沒有事務。 – 2012-04-25 12:38:12

回答

0

在這裏使用WriteConcern。在執行寫入操作(在您的情況下刪除)時,您可以指定一個「寫入關注點」來告訴系統,只有當數據已被刷新到磁盤並複製到X時,您才希望寫入完成奴隸。 這裏是一個Morphia的例子:

morpiaDao.delete(company, new WriteConcern(true));