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的內部某處,這個失敗數字必須被計算出來......是否有任何方式將它打印出來供用戶使用?
非常感謝......我當然應該計算成功而不是失敗...... –