3

我编写了 selenium 测试,即运行时更改对象 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 中的值。测试结束后保存工作。这是个问题

4

1 回答 1

0

在这里使用WriteConcern。在执行写入操作(在您的情况下为删除)时,您可以指定“写入关注点”以告诉系统您希望仅在数据(例如)已刷新到磁盘并复制到 X 时才认为写入完成奴隶。这里是 Morphia 的一个例子:

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