Junit3和junit4不仅是语法的差别,引入的包不同,使用的TestRunner也不同。
Approach A (JUnit 3-style): create a class that extends TestCase, and start test methods with the wordtest
. When running the class as a JUnit Test (in Eclipse), all methods starting with the word test
are automatically run.
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);
}
}
Junit3:
java -classpath .;junit.jar junit.textui.TestRunner TestSample
Approach B (JUnit 4-style): create a 'normal' class and prepend a @Test
annotation to the method. Note that you do NOT have to start the method with the word 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);
}
}
Junit4:
java -classpath .;./junit.jar;./hamcrest-core-1.3.jar org.junit.runner.JUnitCore TestSample
Mixing the two seems not to be a good idea, see e.g. this stackoverflow question:
http://blog.youkuaiyun.com/xufei96/article/details/7331482
http://blog.youkuaiyun.com/ai92/article/details/302844