1
我正在使用Cucumber比較Java中的DataTables。如果發現不匹配,它將拋出TableDiffException。Java黃瓜數據表使用黃瓜差異比較()
例如:
dataTable1.unorderedDiff(dataTable2)
我只是想知道是否有什麼辦法可以只打印錯配列一旦異常被拋出,因爲它是非常困難的比較由於數據表大小相當大(10行和20列),因此在記錄後手動記錄數據數據。
我正在使用Cucumber比較Java中的DataTables。如果發現不匹配,它將拋出TableDiffException。Java黃瓜數據表使用黃瓜差異比較()
例如:
dataTable1.unorderedDiff(dataTable2)
我只是想知道是否有什麼辦法可以只打印錯配列一旦異常被拋出,因爲它是非常困難的比較由於數據表大小相當大(10行和20列),因此在記錄後手動記錄數據數據。
我認爲這是一個相當不錯的例外: 爲特色 @DevTag 特點:基本測試功能
Scenario: Scenario1
Given i do this
When i do that
|a|a|
|b|b|
|c|c|
Then i expect something
|a|a|
|b|c|
|c|c|
然後你會得到異常:
cucumber.runtime.table.TableDiffException: Tables were not identical:
| a | a |
- | b | b |
| c | c |
+ | b | c |
但這裏是一種方法來改變:
try {
one.unorderedDiff(two);
} catch (Tablee) {
String s = e.toString();
s.split("\n");
for(String elem: s.split("\n")){
if(elem.trim().startsWith("+")){
System.out.println(elem);
}
}
}
正如你所看到的,可以捕捉到這個異常,然後你就可以使用它。我將它分成每行,然後只打印錯誤的行。
如果您願意,您可以拋出一個新的異常,其中只包含帶有錯誤行的消息。
這對你有幫助嗎?如果不能隨意發表評論