在与测试方法相同的类中编写单元测试或将其写入另一个类(相同的包或外部包)中有什么区别? 这些测试位置有哪些优点或缺点?
答案 0 :(得分:4)
如果您在单独的课程中进行测试,则可以
答案 1 :(得分:1)
最佳做法是对他们验证的代码进行单独测试。原因很简单:您不希望使用您的应用程序打包测试。应用应该是干净的。测试应该从外部验证功能。
测试通常有其他依赖项(例如测试框架,模型库等)。
通常的做法是将源代码放在src/main/java
下,并在src/tests/java
下进行测试。
答案 2 :(得分:0)
在分离的类中编写的优点是可以将测试与代码分开。例如,使用maven:
1.建立一切
2.执行包括**/*Test*.java pattern
我甚至不知道如何在同一个班级进行单元测试而不是代码...
答案 3 :(得分:0)
测试方法用于测试您的代码。将它们放在测试类中会使类的API变得混乱,并使类的字节码和依赖项大于必要。
如果我想使用您的Calculator类,我不需要testPlusWorks()
和testMinusWorks()
测试方法。我只需要plus()
和minus()
。如果testPlusWorks
依赖于JUnit或Mockito库中的某些类,我不希望在生产环境中使用这些依赖项:它们仅在测试类时才有用。
答案 4 :(得分:0)
这个问题没有“正确”的答案。
写在同一个班级: 允许您测试私有方法,但会弄乱代码。
在同一个项目中写作: 允许您测试内部方法/逻辑,但会弄乱项目并延长编译时间。
外部写作: 阻止您测试项目内部方法/类,但保持测试清洁并且在“生产”编码器外部。
答案 5 :(得分:0)
我发现最好将单元测试完全写在不同的源文件夹中,但要将它们保存在同一个包中,因为您仍然可以访问打包(默认)范围的方法和变量。