将 JUnit 测试方法放入测试类中是一种不好的做法吗?

Mik*_*kin 5 java junit

考虑一个具有小型库式静态方法的 Java 类。

将 JUnit 测试方法放在同一个类中是一种不好的做法吗?

我看到以下优点:

  • JUnit 测试作为自文档就位于方法代码附近
  • 很容易将此代码移动到另一个类或包

对比是什么?为什么通常的做法是始终将测试代码分开?

一个例子:

import org.junit.*;

public class HtmlUtils {
    public static String normalizeBrs(String html) {
        return html.replaceAll("<br\\s*/?>", "<br/>");
    }

    @Test
    public void testNormalizeBrs() {
        Assert.assertEquals(normalizeBrs("hello <br /> world <br>"), "hello <br/> world <br/>");
    }
}
Run Code Online (Sandbox Code Playgroud)

naf*_*fas 2

如果您的包裹很小,您可能不会注意到任何差异。

但是想象一下,您有一个包含数千个类的包,然后有数十个数千个方法。这意味着数十次数千次测试。

那么如果将所有代码+测试放在一起会发生什么呢?

对于类似的事情,您可能最终会用垃圾加载内存,而这些垃圾实际上永远不会有任何用途。

这就是为什么一般实践总是鼓励您将它们分开。通过遵循这个较小的包,您实际上也在为更大的项目训练自己。