2011-10-10 57 views
11

我有大約100線,看起來像下面:使用Eclipse查找和替換所有交換參數

的assertEquals(results.get(0).getID(),1);

它們都以assertEquals開頭幷包含兩個參數。我正在尋找一種方法來使用查找和全部替換掉​​所有這些行的參數。

由於

回答

21

使用以下正則表達式找到:

assertEquals\((.*),(.*)\); 

和該替換值:

assertEquals(\2,\1); 

的正則表達式意味着「的assertEquals(之後的第一組字符,接着用逗號跟着第二組字符後跟);「

重置值意味着「assertEquals」(緊接着是第二組字符,後面跟着一個逗號,接着是後面跟着的第一組字符);「

+0

這非常接近,但它不處理'assertEquals(「a」,methodCall(a,b));'。它將它變成'assertEquals(b),「a」,methodCall(a);'而不是'assertEquals(methodCall(a,b),「a」); – pards

0

我不知道該怎麼做在Eclipse中,但如果你恰好也有一個vim安裝你可以加載文件,並做

:%s/\(assertEquals(\)\(.*\),\(.*\))/\1\3,\2)/ 
0

如果你發現自己在交換參數順序方法聲明往往是很常見的,我發現了一個插件,只需點擊一下即可完成。

這個插件增加了兩個工具欄按鈕到Eclipse Java編輯器:

Swap backward 
Swap forward 

enter image description here

隨着插入符號|在:

void process(int age, String |name, boolean member) {...} 

點擊交換前進按鈕收率:

void process(int age, boolean member, String |name) {...} 

或點擊與原始源收率交換向後按鈕:

void process(String |name, int age, boolean member) {...} 

Here is the article discussing it.

Here is the jar to drop into your eclipse plugin directory.

0

您也可以使用Eclipse的內置方法簽名重構來重新排序參數。

在從JUnit轉換到TestNG(它看起來像是在做什麼)的情況下,可以將org.testng.Assert複製到項目中,然後重構assertXYZ方法來轉置預期/實際參數。

完成後,刪除org.testng的副本。斷言