2011-10-10 29 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的副本。断言