Junit笔记
1、 单元测试
package edu.hpu.junit; public class T { public int plus(int x , int y) { return x + y; } }
//测试用
package edu.hpu.junit.test; //静态引入,引入相应的方法,而不用再写类名 import static org.junit.Assert.*; import org.junit.Test; import edu.hpu.junit.T; public class TTest { @Test public void testPlus() { int z = new T().plus(3, 5); assertEquals(8, z); } }
2、 Error与Failure
Error是程序出错,Failure是测试失败
3、 测试方法是否抛出相应的异常
@Test(expected=java.lang.ArithmeticException.class) public void testDivide() { int z = new T().divide(8, 0); }
4、 测试程序的执行速度
@Test(expected=java.lang.ArithmeticException.class, timeout=100) public void testDivide() { int z = new T().divide(8, 0); }
5、 @before与@after
package edu.hpu.junit.test; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import edu.hpu.junit.T; public class TTest { @Before public void before() { System.out.println("before"); } @Test public void testPlus() { int z = new T().plus(3, 5); assertEquals(8, z); } @Test(expected=java.lang.ArithmeticException.class, timeout=100) public void testDivide() { int z = new T().divide(8, 0); } @After public void after() { System.out.println("after"); } }
运行结果:
before
after
before
after
表明每当测试一个方法前运行一下用@before标识的方法,结束时运行一下用@after标识的方法
6、 @BeforClass和@AfterClass
package edu.hpu.junit.test; import static org.junit.Assert.*; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import edu.hpu.junit.T; public class TTest { @BeforeClass public static void beforeClass() { System.out.println("beforeClass"); } @AfterClass public static void afterClass() { System.out.println("afterClass"); } @Before public void before() { System.out.println("before"); } @Test(expected=java.lang.ArithmeticException.class, timeout=100) public void testDivide() { int z = new T().divide(8, 0); } @After public void after() { System.out.println("after"); } }
运行结果:
beforeClass
before
after
afterClass
表明当Class未初始化前执行BeforeClass标识的方法,程序运行完以后执行AfterClass方法