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
示例代码下载