【发布时间】:2017-03-31 11:35:36
【问题描述】:
我想将我的查询模拟为一个 mongo 集合,并确认在查询中设置了正确的参数。
被测试的代码是
Bson query = eq("name",name);
if (version!=null) {
query = and(query,eq("version",version));
}
Document retrievedDoc = collection.find(query).sort(descending("version")).first();
而我要写的测试是
Bson query = and(eq("name","test.TestClass"),eq("version",1));
when(collection.find(<some matcher>).thenReturn(result);
但是 Bson 没有实现 equals 并且没有任何明显的方法来获取它的任何内容来编写自定义匹配器或测试捕获的 Bson。
虽然我认为这并不重要,但我正在使用 mockito。
有什么好方法可以断言查询的更多内容而不是它的类?
【问题讨论】:
-
我要补充一点,我对任何允许查询可测试性的解决方案感兴趣,即使 ti 涉及重大重构