Java Eclipse代码重构-Junits

Java Eclipse代码重构-Junits,java,eclipse,junit,Java,Eclipse,Junit,我想重构现有的代码 String a = "Hi"; assertEquals(a, "Hi"); 到 我的项目中有大约200万条assert语句需要重构。在EclipseIDE中是否有快捷键、模板或批处理过程,我可以实现这些快捷键、模板或批处理过程来更轻松地完成这项工作 资产质量(预期、实际) 您可以尝试以下方法: 将org.junit.Assert.assertEquals方法复制到一个新类中,比如说temp.TempAssert 搜索并替换import static org.junit.

我想重构现有的代码

String a = "Hi";
assertEquals(a, "Hi");

我的项目中有大约200万条assert语句需要重构。在EclipseIDE中是否有快捷键、模板或批处理过程,我可以实现这些快捷键、模板或批处理过程来更轻松地完成这项工作

资产质量(预期、实际)


您可以尝试以下方法:

  • org.junit.Assert.assertEquals
    方法复制到一个新类中,比如说
    temp.TempAssert
  • 搜索并替换
    import static org.junit.Assert.assertEquals使用
    导入静态temp.TempAssert.assertEquals在所有文件中
  • 转到
    TempAssert
    类并进行重构->更改方法签名以切换参数顺序
  • 替换导入静态temp.TempAssert.assertEquals返回
    导入静态org.junit.Assert.assertEquals在所有文件中

  • 在使用了一点正则表达式之后,我提出了以下解决方案(多亏了):

    将第一个和第二个参数分别捕获到单独的组1和组2中,并应粘贴到
    find
    输入字段中

    assertEquals($2, $1);
    
    此命令将分别交换存储在$1中的第一个参数组和存储在$2中的第二个参数组

    警告


    我正在使用Intellij IDEA进行开发,因此它可能会在eclipse中出现意外的行为。但是命令应该几乎相同。

    我可能会使用smth。比如用正则表达式“在项目中查找并替换”函数。@ArthurEirich:你能分享一个正则表达式的例子吗?旁注:当你进行所有重构工作时,为什么不把它改成更理智的资产(a,is(“Hi”)?有一个很好的优点,就是你不需要交换你的论点;-)@当谈到理智时,我会更进一步,使用AssertJ而不是hamcrest。像
    这样的代码表明(a).isEqualTo(“Hi”)
    与您的建议一样可读性更好。顺便说一句,我仍在努力寻找合适的正则表达式=)@ArthurEirich当然。我想这取决于你想用什么图书馆。assertThat和is是大多数人可以立即使用的东西,而无需向全新的断言框架添加新的依赖项。这是个好主意。
    assertEquals\((.*), (.*)\);
    
    assertEquals($2, $1);