JUnit引语整理
JUnit注解整理
一.Junit注解
注解 | 作用 |
@Test | 测试方法 |
@Ignore | 忽略测试方法 |
@BeforeClass | 所有测试方法前执行一次 |
@AfterClass | 所有测试方法后执行一次 |
@Before | 初始化方法,每个方法前都执行一次 |
@After | 释放资源,每个方法后都执行一次 |
@RunWith | 指定一个特殊的运行器 |
@SuteClasses | 将需要进行测试的类列表作为参数传入 |
说明
1.Junit 4 的单元测试用例执行顺序为:
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass;
2.每一个测试方法的调用顺序为:
@Before –> @Test –> @After。
3.@Test两个参数
(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。