0
我检查一个字符串列表包含满足特定条件的具体数字,特别是它们包含一个子字符串,忽略大小写。AssertJ结果反馈与“迭代断言”
所以我想出了这个(原因failedResults
领域将变得明显):
class ContainsIgnoringCase extends Condition<CharSequence> {
private String lCString;
private int failedResults = 0;
int getFailedResults(){
return failedResults;
}
ContainsIgnoringCase(String string){
lCString = string.toLowerCase();
}
@Override
public boolean matches(CharSequence value) {
boolean result = value.toString().toLowerCase().contains(lCString);
if(! result){
failedResults++;
}
return result;
}
}
如果失败,则:
assertThat(paramsPassed).haveExactly(7, new ContainsIgnoringCase("documents"));
它打印出的List<String> paramsPassed
,但它不”说实际的失败次数。
我认为这有可能会做的伎俩,但它并不:
ContainsIgnoringCase cic = new ContainsIgnoringCase("documents");
assertThat(paramsPassed).as("failed: " + cic.getFailedResults()).haveExactly(7, new ContainsIgnoringCase("documents"));
...这只是打印“失败0”,如此明显的测试进行之前的方法getFailedResults()
被称为。在AssertJ的内部某处,这个失败数字必须被计算出来......是否有任何方式将它打印出来供用户使用?
非常感谢......我当然应该计算成功而不是失败...... –