bud*_*udi 10 java junit parameterized
我目前有一个抽象BaseTest类,它包含几个泛型@Test.
public abstract class BaseTest {
private String expected;
private String actual;
public BaseTest(String expected, String actual) {
this.expected = expected;
this.actual = actual;
}
public String methodToTest(String line) {
return line.trim();
}
@Test
public void testNull() {
assertNull(methodToTest(null));
}
// more @Tests...
}
Run Code Online (Sandbox Code Playgroud)
SomeTest扩展BaseTest,我定义了各种测试用例.
@RunWith(Parallelized.class)
public class SomeTest extends BaseTest {
// @Parameters (test cases) goes here...
}
Run Code Online (Sandbox Code Playgroud)
我有许多测试可以扩展BaseTest,然后我将其Suite放入RunAllTests.
@RunWith(Suite.class)
@SuiteClasses({ SomeTest.class, AnotherTest.class, etc... })
public class RunAllTests { }
Run Code Online (Sandbox Code Playgroud)
所以,假设我想添加更多@Test,但我想将它们包含在另一个类中.
public class WhitespaceTest extends BaseTest {
public WhitespaceTest(String expected, String actual) {
super(expected, actual);
}
@Test
public void testNewline() {
assertEquals(expected, methodToTest(actual + "\n"));
}
// more @Tests...
}
Run Code Online (Sandbox Code Playgroud)
看来我需要另一个"层" Suites来运行每一个测试,所以对于每个类RunAllTests,我运行BaseTest AND WhitespaceTest.我该如何实现这一层?
这是我当前(天真的)解决此问题的方法:
之内BaseTest:
@Test
public void testNewline() {
WhitespaceTest wt = new WhitespaceTest(expected, actual);
wt.testNewline();
}
Run Code Online (Sandbox Code Playgroud)
这可行,但有很多重复的代码。对于每个@Testin WhitespaceTest,您必须创建另一个@Testin BaseTest。
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |