JUnit注解整理
程序员文章站
2022-06-01 16:42:40
...
一.Junit注解
注解 | 作用 |
@Test | 测试方法 |
@Ignore | 忽略测试方法 |
@BeforeClass | 所有测试方法前执行一次 ,修饰的方法必须为static |
@AfterClass | 所有测试方法后执行一次 ,修饰的方法必须为static |
@Before | 初始化方法,每个方法前都执行一次 |
@After | 释放资源,每个方法后都执行一次 |
@RunWith | 指定一个特殊的运行器 |
@SuteClasses | 将需要进行测试的类列表作为参数传入 |
说明
1.Junit 4 的单元测试用例执行顺序为:
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass;
2.每一个测试方法的调用顺序为:
@Before –> @Test –> @After。
[email protected]两个参数
(1) expected用于测试会抛出的异常,注意expected不起到catch作用,抛出异常后的代码不会被执行;
(2) timeout,传入指定的毫秒数,用于超市测试。
二.例子
import org.junit.*;
import org.junit.runner.*;
import org.slf4j.*;
import org.springframework.test.context.junit4.*;
//@RunWith(SpringJUnit4ClassRunner.class)
public class DemoTest {
private static final Logger logger = LoggerFactory.getLogger(DemoTest.class);
@BeforeClass
public static void init() {
logger.info("-- demo class init --");
}
@AfterClass
public static void destroy() {
logger.info("-- demo class destroy --");
}
@Before
public void setUp() throws Exception {
logger.info("demo method setup");
}
@After
public void tearDown() throws Exception {
logger.info("demo method tearDown");
}
@Test(expected = ArithmeticException.class)
public void test1() {
logger.info("demo method1 begin");
int i = 0;
i = 1 / i;
logger.info("demo method1 end");
}
@Test(timeout = 1500)
@Ignore
public void test2() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
logger.info("demo method2 end");
}
}
三. 断言:Assertions
1.断言(assertion)
是测试框架里面的若干个方法,用来判断某个语句的结果是否为真或判断是否与预期相符。
2.使用方式
可以通过 import static org.junit.Assert.*; 这种方法静态地导入Assert类。
3.不推荐
可以使用包括assertEquals、assertTrue等等很多内容。但由于JUnit的Assert.assertEquals(String message, String expected, String actual); 是公认的烂API,你很难记住三个参数的位置,所以不推荐使用,目前推荐使用AssertJ。