我编写了selenium test,它是对mongodb对象的属性的运行时更改(使用morphia的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中的值。在测试结束后保存工作。这是个问题
最佳答案
在这里使用WriteConcern
。在执行写操作(在您的情况下为delete)时,您可以指定一个“write concern”来告诉系统,您希望只有在数据(例如)已刷新到磁盘并复制到x个从机时,才认为写操作已完成。
这里是morphia的一个例子:
morpiaDao.delete(company, new WriteConcern(true));
关于mongodb - 玩!框架1.2.4 - 立即从morphia中保存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10310375/