Java 的单元测试
Posted seliote
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 的单元测试相关的知识,希望对你有一定的参考价值。
// src/main/java/club/seliote/App.java
package club.seliote;
public class App
{
public int add(int first, int second) {
return first + second;
}
public int exception() {
throw new NullPointerException();
}
}
// src/test/java/club/seliote/AppTest.java
package club.seliote;
import org.junit.*;
/**
* Unit test for simple App.
*/
public class AppTest
{
/**
* 用于保存 @Before 生成的数据
*/
private App app = null;
/**
* 每个测试方法执行前都需要重新构造对象
*/
public AppTest() {
super();
System.out.println("#Constructor");
}
/**
* static 方法,测试类中第一个执行
*/
@BeforeClass
public static void beforeClassTest() {
System.out.println("#BeforeClass");
}
/**
* 初始化一些每个 @Test 方法都会用到的数据
*/
@Before
public void beforeTest() {
this.app = new App();
System.out.println("#Before");
}
@Test
public void testAdd() {
System.out.println("#TestAdd");
Assert.assertEquals(6, this.app.add(3, 3));
if (8 != this.app.add(1, 7)) {
Assert.fail("Something error!");
}
}
/**
* 超时测试
*/
@Test(timeout = 100)
public void testTimeout() {
Math.pow(10, 100);
}
/**
* 异常测试
*/
@Test(expected = NullPointerException.class)
public void testIO() {
System.out.println("#TestException");
this.app.exception();
}
@After
public void afterTest() {
this.app = null;
System.out.println("#After");
}
@AfterClass
public static void afterClassTest() {
System.out.println("#AfterClass");
}
}
// output :
// #BeforeClass
// #Constructor
// #Before
// #After
// #Constructor
// #Before
// #TestAdd
// #After
// #Constructor
// #Before
// #TestException
// #After
// #AfterClass
以上是关于Java 的单元测试的主要内容,如果未能解决你的问题,请参考以下文章