junit4
1、导包,导入到ClassPath中,不能导入到ModelPath中。
2、 @Test:测试方法 expected属性:抛出异常 timeout属性:设置超时
@BeforeClass:所有方法运行前执行,static修饰
@AfterClass:所有方法运行结束后执行,static修饰
@Before:在每一个测试方法运行前执行
@After:在每一个测试方法运行结束后执行
@Ignore:忽略测试方法
@RunWith:更改测试运行器
3、测试套件:组织测试类一起运行
1)、测试套件类:空类
2)、@RunWith(Suite.class)
@Suite.SuiteClass({测试类1,测试类2...})
import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({DemoTest.class,DemoTest2.class}) public class SuiteTest { }
4、参数化设置:对多组数据同时进行测试
1)、更改测试运行器为:@RunWith(Parameterized.class)
2)、声明变量来存放预期值和结果值
3)、声明一个返回值为Collection的公共静态方法,并使用@Paramaters修饰
4)、为测试类声明一个带有参数的公共构造函数,并在其中为之声明变量赋值
import static org.junit.Assert.assertEquals; import java.util.Arrays; import java.util.Collection; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) public class parameterTest { int expected=0; int input1=0; int input2=0; @Parameters public static Collection<Object[]> t(){ return Arrays.asList(new Object[][] { {3,1,2}, {4,2,2} }); } public parameterTest(int expected,int input1,int input2) { this.expected=expected; this.input1=input1; this.input2=input2; } @Test public void testAdd() { assertEquals(expected,new Demo().add(input1, input2)); } }