我发现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);
}
}
Run Code Online (Sandbox Code Playgroud)
方法B(JUnit 4-style):创建一个"普通"类并@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);
}
}
Run Code Online (Sandbox Code Playgroud)
混合两者似乎不是一个好主意,请参阅例如 …
我读了这个关于何时使用断言的答案,基本上是说使用它来进行在生产中关闭的测试:适当使用断言
(Oracle 文档说As an added benefit, assertions serve to document the inner workings of your program, enhancing maintainability.这是有道理的,但我不清楚为什么它是额外的好处而不是唯一的好处。)
我的想法是:
我有什么误解?预先感谢您的帮助 :)