Junit 基本使用
来源:原创 发布时间:2015-04-12 归档:junit
环境 :
JDK 7
Maven 3
Junit 4.11
Eclipse Luna
pom.xml
<properties> <junit.version>4.11</junit.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies>Junit4 基础注解
public class BasicTest { public BasicTest() { System.out.println("---> BasicTest"); } @BeforeClass public static void setupBeforeClass() { System.out.println("---> setupBeforeClass"); } @AfterClass public static void tearDownAfterClass() { System.out.println("---> tearDownAfterClass"); } @Before public void setupBeforeMethod() { System.out.println("---> setupBeforeMethod"); } @After public void tearDownAfterMethod() { System.out.println("---> tearDownAfterMethod"); } @Test public void testMethod1() { System.out.println("---> testMethod1"); } @Test public void testMethod2() { System.out.println("---> testMethod2"); } }
mvn clean test 执行结果 :
Running org.lychie.service.BasicTest
---> setupBeforeClass
---> BasicTest
---> setupBeforeMethod
---> testMethod1
---> tearDownAfterMethod
---> BasicTest
---> setupBeforeMethod
---> testMethod2
---> tearDownAfterMethod
---> tearDownAfterClass
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.126 sec
---> setupBeforeClass
---> BasicTest
---> setupBeforeMethod
---> testMethod1
---> tearDownAfterMethod
---> BasicTest
---> setupBeforeMethod
---> testMethod2
---> tearDownAfterMethod
---> tearDownAfterClass
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.126 sec
@BeforeClass 和 @AfterClass 注解标注的方法要求是 public static void 修饰的无参方法。
@BeforeClass 在整个单元测试过程中仅执行一次, 并且是在测试开始之前执行。
@AfterClass 在整个单元测试过程中也仅执行一次, 并且是在测试结束之后执行。
BasicTest 每个测试用例执行时都会新创建一个当前类的实例, 可以从执行结果中看到, BasicTest 的构造器被执行了 2 次。
@Test 测试用例, 由 public void 修饰的无参方法。
@Before 在 @Test 执行之前执行。
@After 在 @Test 执行之后执行。
@Test 测试用例
@BeforeClass 在整个单元测试过程中仅执行一次, 并且是在测试开始之前执行。
@AfterClass 在整个单元测试过程中也仅执行一次, 并且是在测试结束之后执行。
BasicTest 每个测试用例执行时都会新创建一个当前类的实例, 可以从执行结果中看到, BasicTest 的构造器被执行了 2 次。
@Test 测试用例, 由 public void 修饰的无参方法。
@Before 在 @Test 执行之前执行。
@After 在 @Test 执行之后执行。
public class Calculator { public int add(int x, int y) { return x + y; } public double divide(double x, double y) { return x / y; } }
public class CalculatorTest { private Calculator calculator; @Before public void setup() { calculator = new Calculator(); } @Test(timeout = 10) public void testAdd() { Assert.assertEquals(3, calculator.add(1, 2)); } @Test(expected = Throwable.class) public void testDivide() { Assert.assertEquals(0, calculator.divide(1, 0), 0); } }
timeout :毫秒为单位, 若方法执行完成耗时超出给定的数值, 则视为失败。
expected :预测方法抛出的异常, 若方法执行过程中没有抛出给定的异常, 则视为失败。
mvn clean test 执行结果 :
expected :预测方法抛出的异常, 若方法执行过程中没有抛出给定的异常, 则视为失败。
mvn clean test 执行结果 :
Running org.lychie.service.CalculatorTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
示例代码下载