我编写了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/

10-09 19:49