被测试的类为MyClass.java JUnit测试用例的名称替代方案:
TestMyClass.java
MyClassTest.java
http://moreunit.sourceforge.net 似乎使用 "Test" 作为默认前缀,但我见过两种用法。在 Eclipse 中将整个项目作为单元测试运行时,这两种用法都似乎被识别,因为类内的注解 @Test 被解析了。我猜 Maven 做同样的事情。哪个更受推荐?
被测试的类为MyClass.java JUnit测试用例的名称替代方案:
TestMyClass.java
MyClassTest.java
http://moreunit.sourceforge.net 似乎使用 "Test" 作为默认前缀,但我见过两种用法。在 Eclipse 中将整个项目作为单元测试运行时,这两种用法都似乎被识别,因为类内的注解 @Test 被解析了。我猜 Maven 做同样的事情。哪个更受推荐?
在英语中,另一个使用后缀的理由是:
类通常代表名词,它是一个概念的模型。你的测试实例之一将会是'MyClass test'。相比之下,方法会模拟某种行为,例如'test [the] calculate [method]'。
因此,我总是使用测试类的后缀和测试方法的前缀:
the MyClass test --> MyClassTest
test the calculate method --> testCalculate()
我更喜欢使用后缀“-test”,这样在查看目录中的文件列表时会更简单:您不必心理上忽略前四个字母以找到有意义的内容。(假设您已经将测试文件放在与生产代码不同的目录中。)
这还意味着,当您在Eclipse中使用Open Type(Ctrl-T)时,您将同时看到生产代码及其测试...如果您没有看到测试类,这也是一个提醒 :)
*Test.java
的类上运行JUnit。现在,在基于注释的JUnit 4中,您只需使用@Test
注释标记测试方法即可完成。您的测试类可能位于与实际源代码不同的目录结构下(源代码位于src/
,测试类位于test/
),因此这些前缀/后缀现在基本无关紧要。Connector
,那么用于测试连接器实例的模型将是一个 ConnectorTest
。对我来说,这很显然。从纯技术角度看,你是正确的,但命名应该与设计相关。 - Andreas DolkConnector
的单元测试将在ConnectorTest
中进行,因此从我的回答来看,前缀/后缀仍然有一定的价值。 - krock如果你是独自工作,那么你需要对自己的测试感到舒适很重要。但是如果你在一个团队中,最好坐下来解决一些问题。我个人倾向于对类使用后缀,对方法使用前缀,并尝试让我的团队遵循这种约定。
当我想将我的测试分成多个类时,我也会使用 MyClassTest_XXX。这在测试一个大类并且我希望逻辑上分组的情况下非常有用。(无法控制遗留代码,因此这种情况确实会出现。)然后我会有像 KitchenSinkTest_ForArray、KitchSinkTest_ForCollection 等类似的东西。
我建议使用MyClassTests
。
类应该是名词短语,所以常用的有MyClassTest
,较少用的有MyClassTests
、MyClassTestCase
或MyClassTestFixture
都可以。从技术上讲,JUnit测试类的实例表示test fixture,但TestFixture
对我来说有点太冗长了。
我认为MyClassTests
传达了最好的意图,因为一个类中通常有多个测试方法,每个方法代表一个单独的测试(测试用例)。