我將Testng
斷言轉換爲AssertJ
我使用的是sed
命令。我絞死當有新的行狀陳述,在Unix下處理sed的新行
了Exa 1:
assertEquals(person.getAddressLine1(),
"This is long line, so needs to go in second line as per Formatter.........!!!!!!!");
了Exa 2:
assertEquals(person.getAddressLine1(),
"This is very long line, so needs to break down in multiple" +
"This is very long line, so needs to break down in multiple" +
"This is very long line, so needs to break down in multiple");
我目前的解決方案:這是運行完美用於單線斷言。
sed -i 's/assertEquals([[:blank:]]*\(.\+\),[[:blank:]]*\(["].\+["]\+\))[[:blank:]]*;/Assertions.assertThat(\1).isEqualTo(\2);/g'
注意:我知道,我可以改變我的編輯Formatterr線的最大長度,但不知何故,因爲那時我需要做的,我不能改變它按Ctrl +移+F再次,這對我來說是不可能的。
UPDATED:這兩個例子的預期輸出如下。
了Exa 1:
Assertions.assertThat(person.getAddressLine1()).isEqualTo("This is long line, so needs to go in second line as per Formatter.........!!!!!!!");
了Exa 2:
Assertions.assertThat(person.getAddressLine1()).isEqualTo("This is very long line, so needs to break down in multiple" +
"This is very long line, so needs to break down in multiple" +
"This is very long line, so needs to break down in multiple");
你是否願意接受一個解決方案,多主張將'被轉換成sed'單行語句? – Leon
當斷言中使用了逗號和雙引號時,任何基於正則表達式的解決方案都會出錯。 'assertEquals(「a」引用的\「value,foo,bar」,str);' – anubhava
@Leon:是的...... –