我发现 JUnit 的正确使用(或者至少是文档)非常令人困惑。 这个问题既可以作为将来的参考,也可以作为一个真正的问题。
如果我理解正确的话,创建和运行 JUnit 测试有两种主要方法:
方法 A (JUnit 3-style) : 创建一个扩展 TestCase 的类,并用单词 test
启动测试方法。当将该类作为 JUnit Test (在 Eclipse 中)运行时,将自动运行以单词 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风格) : 创建一个“普通”类,并在方法前面添加一个 @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);
}
}
把两者混在一起似乎不是一个好主意,参见 这个堆栈溢出的问题:
现在,我的问题是:
@Test(expected = ArithmeticException.class)
.但是在使用方法 A 时如何测试异常?那样扩展@Test 注释来测试异常当使用方法 A 时,您可以像下面这样在一个测试套件中分组许多测试类:
TestSuite suite = new TestSuite("All tests");
suite.addTestSuite(DummyTestA.class);
suite.addTestSuite(DummyTestAbis.class);
< br/> < br/>
但是这不能用于方法 B (因为每个测试类都应该是 TestCase 的子类)
编辑: 我已经将 JUnit 版本添加到这两种方法中