我发现JUnit的正确用法(或者至少是文档)非常令人困惑。这个问题既可以作为未来的参考,也可以作为一个真正的问题。
如果我没理解错的话,有两种主要的方法来创建和运行JUnit测试:
方法A (JUnit 3风格):创建一个扩展TestCase的类,并使用单词test
开始测试方法。当将类作为Eclipse运行时(在JUnit中),所有以单词test
开头的方法都会自动运行。
import junit.framework.TestCase;
public class DummyTestA extends TestCase {
public void testSum() {
int a = 5;
int b = 10;
int result = a + b;
assertEquals(15, result);
}
}
方法B (JUnit 4样式):创建一个“normal”类,并在方法前面添加一个@Test
注释。请注意,您不必以单词test
开头该方法。
import org.junit.*;
import static org.junit.Assert.*;
public class DummyTestB {
@Test
public void Sum() {
int a = 5;
int b = 10;
int result = a + b;
assertEquals(15, result);
}
}
将两者混合在一起似乎不是一个好主意,参见例如this stackoverflow question:
现在,我的问题是:
@Test(expected = ArithmeticException.class)
中那样扩展@ testing来测试异常。但如何测试异常使用方法A时,您可以在测试套件中对许多测试类进行分组,如下所示:TestSuite suite = new TestSuite("All tests");
suite.addTestSuite(DummyTestA.class);
suite.addTestSuite(DummyTestAbis.class);
但这不能与方法B一起使用(因为每个测试类都应该是TestCase的子类)。对方法B的测试进行分组的正确方法是什么?
编辑:我已经将JUnit版本添加到这两种方法中
https://stackoverflow.com/questions/2635839
复制相似问题