假设我有一个班级MyClass.java
,我们必须为它编写测试。其中一些将执行一次,其中一些将执行多次。
MyClassTestSingle.java
用于单个测试,MyClassTestMultiple.java
用于带@Parametrized
注释的测试。 MyClassTestSuite.java
。 MyClassTestSingle.java
和MyClassTestMultiple.java
方法中,我使用具有相同值的相同参数,因此我开始考虑包含这些参数的类... 但后来我意识到我想创建四个类来测试单个类。所以我开始寻找一些“良好实践”如何保持我的测试类干净简单。但是在为上述情况编写测试时,没有找到关于我需要的类数量的有价值的信息。
我开始认为我的MyClass.java
中可能存在设计问题,但确实存在需要进行参数化和单个测试并将其打包到套件中的情况。
我错了吗?或者我可能只是不明白?
答案 0 :(得分:2)
这里没有“正确”或“错误”的方式。但是有一些惯例。
首先,通常测试用例名称通常由Test
结束。通常,我们为每个类实现测试用例,并在具有Test
后缀的生产类之后命名。遵循此约定,各种构建和报告工具将自动为您工作,无需其他配置。
如果需要,可以使用将测试用例拆分为多个类。例如,当测试次数或代码行数超过合理限制时,或者是否有一些应该单独维护的测试组。您的示例(参数化而非参数化测试)听起来像是合理的情况。
所以,我要创建MyClassSingleTest.java
和MyClassMultipleTest.java
。
的变体:
MyTest.java和MyTestParameterized.java
。
提供更有意义的名字可能是一个好主意。试着表达你的参数意味着什么。例如UserParameters
,DbParameters
等。在这种情况下,请调用参数化类MyClassUserTest.java
或类似的东西。