删除java中的代码和单元测试



我被要求为我从java类中删除的代码创建单元测试(注意这不是API,所以我不需要弃用代码)。

假设您有一个如下所示的java类,并且您需要删除下面注释的一些代码:

public class foo extends foobar {
protected void doStuff() {
   doMoreStuff();
   // Everything below needs to be deleted, including the doStuffToo() method
   Object o = null;
   doStuffToo(o);

}
public void doMoreStuff() {
   boolean a = true;
}
// this method needs to be deleted
public void doStuffToo(Object o) {
   o = new Object();
}

}

我的意见是,你应该简单地删除被删除代码的测试用例,但是我被告知,我应该编写单元测试来检查旧代码的存在,以防将来出现错误的合并。

在上面的例子中,什么被认为是最佳实践?

希望您已经为doStuff方法准备了单元测试。假设您这样做了,我将执行以下操作:

  1. 更新doStuff方法的测试,以反映新的逻辑应该做什么。
  2. 运行doStuff测试并验证它们是否失败。
  3. 删除被要求删除的应用程序代码。
  4. 重新运行doStuff测试并验证它们是否通过。
  5. 如果测试在步骤4中没有通过,则相应地分析和重构,直到它们通过。
  6. 删除测试已删除方法的测试(无论如何,您将从第3步收到编译器错误)。

我很想知道"检查旧代码是否存在"的单元测试能做什么,以及它们能提供什么好处。我知道如果留下这样的代码会发生什么。它会留在代码库中,变得多余,给新的团队成员造成混乱,直到几年后,一个明智的人决定删除它们。

无论如何,你的安全网是doStuff测试,它有望捕获任何合并问题。如果您的测试处于源代码控制之下(我希望如此!),那么您可以随时恢复到代码库的先前版本,以便在将来需要时检索已删除的测试。

相关内容

  • 没有找到相关文章

最新更新