【发布时间】:2020-11-01 13:11:57
【问题描述】:
我正在尝试在 java 中测试一个函数,它可以帮助我在 elasticsearch 中创建一个 bool 查询并返回一个 QueryBuilder 对象。
public QueryBuilder getBoolQueryForRequest(request) {
// .. bool query creation logic
return boolQuery;
}
查询创建的逻辑很复杂,因此涉及到可以针对此函数的返回值断言的对象。我应该如何进行测试?
link 谈到将 QueryBuilder 转换为字符串查询然后进行比较,但同样,测试原始代码的唯一方法是使用原始代码创建对象,这有点像 catch-22对我来说..
【问题讨论】:
-
在您的测试中有一个静态字符串和查询的预期字符串表示是可以的。然后,测试将防止更改结果(例如重构)。
标签: java elasticsearch testing mockito elasticsearch-java-api