aro*_*ron 51 java junit unit-testing naming-conventions
正在测试的类MyClass.java JUnit测试用例名称替代方案:
TestMyClass.java
MyClassTest.java
Run Code Online (Sandbox Code Playgroud)
http://moreunit.sourceforge.net似乎使用"测试"作为前缀默认,但我已经看到两种用途.当在Eclipse中将整个项目作为单元测试运行时,两者似乎都被识别,因为它是为@Test解析的类中的注释.我猜maven做同样的事情.
哪个更受欢迎?
And*_*s_D 87
后缀的另一个论点 - 至少在英语中:
一个类通常代表一个名词,它是一个概念的模型.您的一个测试的实例将是"MyClass测试".相反,一种方法会模拟某种动作,比如'test [the] calculate [method]'.
因此,我总是使用'suffix'作为测试类和测试方法的前缀:
the MyClass test --> MyClassTest
test the calculate method --> testCalculate()
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 52
我更喜欢使用后缀 - 这意味着向下查看目录中的文件列表更简单:您不必在心理上忽略前四个字母以获得有意义的内容.(我假设您已经在与生产代码不同的目录中进行了测试.)
这也意味着当你在Eclipse中使用Open Type(Ctrl-T)时,你最终会同时看到生产代码和它的测试......如果你没有看到测试类,这也是一个提醒: )
在JUnit 4之前,通常将测试类命名为SomethingTest,然后在所有匹配的类中运行JUnit *Test.java
.这些天注释驱动JUnit 4,你只需要注释你的测试方法@Test
并完成它.您的测试类可能与您的实际源(src/
测试类中的源)处于不同的目录结构下,test/
因此这些天前缀/后缀基本上无关紧要.
不冒犯任何人,但是我认为可以公平地说,“ moreunit”比JUnit少为人所共知,后者几乎无处不在,并建立了后缀测试类“ Test”的约定。
尽管JUnit4消除了同时遵循类和方法命名约定(分别是“ postfix Test”和“ prefix test”)的必要性,但我认为两者仍然对保持清晰有用。
想象一下让src / main / java /.../ MyClass.myMethod()测试src / test / java /.../ MyClass.myMethod()的恐怖。
有时,偏离JUnit3约定很有用-我发现在设置方法之后命名设置方法(“ createTestFactory()”),并在其命名为“ @Before”时,比通用的“ setUp()”要清晰得多。
当需要执行几个不相关的设置操作时,这特别有用-它们可以处于单独的方法中,每个方法都标记为@Before。这很好地传达了动作的独立性。
我更喜欢使用 TestClassName 语法。当使用其他语法时,当我打开两个语法时,我很难确定哪个是测试,哪个是编辑器中的实际类。必须查找名称中的最后四个字母非常烦人,而且这些字母并不总是显示。
\n\n对我来说,其他语法会导致每天在文件之间进行几次错误的交换\xc2\xb4s,这非常耗时。
\n 归档时间: |
|
查看次数: |
33827 次 |
最近记录: |