@BeforeClass
被该注解修饰的方法会在所有测试方法调用前执行,而且该方法是静态的,所以当测试类被加载后接着就会运行它,而且在内存中只存在一份实例,比较适合加载配置文件。
@AfterClass 每个测试方法调用前执行一次
@Before 每个测试方法调用后执行一次
@After
被该注解修饰的方法在所有测试方法调用结束后执行,通常用来对资源的清理,如关闭数据库链接
@Test将被一个普通方法修饰为一个测试方法
@Ignore(“…”) 所修饰的方法会被测试运行器忽略不会被执行
@RunWith可以更改测试运行器
自己的测试方法继承org.juniit.runner.Runner
1、异常的捕获
@Test(expected=ArithmeticException.class)
预期会抛出一个算术异常
2、对方法运行的时间做限定;
@Test(timeOut=毫秒)
1、用来避免测试的时候出现死循环的问题
2、比如为读取文件的方法设置超时时间,超过这个时间认为测试不成功
Junit测试套件、@RunWith(Suite.class)
示例:
package com.imooc.util; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) //修改测试运行器 @Suite.SuiteClasses({TaskTest1.class,TaskTest2.class,TaskTest3.class}) public class SuiteTest { /** * 1、测试套件就是组织测试类一起运行的 * * 写一个作为测试套件的入口类,这个类里不包含其它的方法,并且是public修饰的 * 更改测试运行器Suite.class * 要将测试类作为数组传入Suite.SuiteClasses({}) */ }
Junit的参数化设置、@RunWith(Parameterized.class)
package com.imooc.util; 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 ParamentTest { /** * 1、更改默认的测试运行器@RunWith(Parameterized.class) * 2、声明变量来存放预期值和结果值 * 3、声明一个返回值为Collection的公共静态方法,并使用@Parameters 进行修饰 * 4、为测试类声明一个带有参数的公共构造函数,并在其中为之声明变量赋值 */ 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 ParamentTest(int expected,int input1,int input2){ this.expected = expected; this.input1 = input1; this.input2 = input2; } @Test//调用测试方法 public void testAdd(){ assertEquals(expected, new Calculate().add(input1, input2)); } }
原文:https://www.cnblogs.com/404code/p/10569026.html