我有一个类,其中一个公共方法非常适合参数化测试。另外我读到你通常会在测试用例(一个带有@Test注释方法的多个方法的类)和项目中的类之间保持对应关系。有可能以某种方式使用Parameterized.class和JUnitCore.class作为跑步者吗?现在,如果使用参数化我无法弄清楚如何设置方法的非参数化测试 在同一个测试用例中。我想过然后创建一个套件,然后包括 参数化测试和“常规”测试,但似乎为了使名称对测试用例有意义,我必须将测试用例的名称绑定到方法的名称而不是包含似乎是标准的方法的类方式。
例如
public class MyClass {
public int methodSuitableForParameterizedTest(int m){
// Implementation
}
public int methodForRegularTest(int m) {
// Implmentation
}
}
我是否仍然可以使用单个测试用例TestMyclass
,其中包含第一种方法的paremeterized测试以及第二种方法的非参数化测试?
答案 0 :(得分:2)
这很难做到,它涉及创建自己的跑步者来完成这两项工作,所以我会坚持使用两个类解决方案,一个是参数化测试,另一个是没有。
问题是双重的,类{+ 1}}注释和构造函数。对于参数化测试,您需要@RunWith
和带参数的构造函数。对于标准测试,构造函数没有参数。并且JUnit检查特定类是否只有一个构造函数。你可以通过创建另一个跑步者来做到这一点,但这并不简单。
我建议在这种情况下有两个测试类。
答案 1 :(得分:1)
最近我开始了zohhak项目。它让你写:
@TestWith({
"25 USD",
"38 GBP",
"null"
})
public void testMethod(Money money) {
...
}