ltf*_*hie 6 unit-testing mongodb nosql
在处理像MongoDB这样的最终一致的数据存储时编写测试用例的最佳实践是什么?
我目前的设置是Mongodb,它具有3节点主/从/从设置,slave-ok设置为true.这意味着主节点用于只写,两个从节点用于只读.
数据在从站上保持一致所用的时间相对较短,并且取决于操作和数据大小.例如,删除操作约3毫秒,1000个对象批量插入约200毫秒.
我的目标是测试我的Dao上的操作.它们可能很简单,如getById,delete,insert或findByExample等复杂的.我需要验证它们是否正常工作,最终在一些超时限制内是否可以接受.
这是我目前测试删除操作的内容,例如:
@Test
public void deleteTest() throws InstantiationException,
IllegalAccessException {
MyObject obj = new MyObject();
obj.setName("test object");
obj.save(obj);
MyObject found = dao.findById(obj.getId());
logger.info ("before: " + found);
Assert.assertEquals(obj, found);
dao.delete(obj.getId());
MyObject deleted = null;
long start = System.nanoTime();
do {
//TBD: need to add escape condition/timeout, else may be infinite loop....
deleted = dao.findById(obj.getId());
logger.info ("While: " + deleted);
} while (deleted!=null);
logger.info("It took " + ((System.nanoTime()-start)/1000000.00) + " ms for delete to be consistent");
Assert.assertEquals(null, d1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |