单元测试(一)使用Junit进行单元测试
·
前言
使用Junit进行单元测试,应该是所有Java开发的入门级教程,所以并不难。我也很久没敲过java代码了,为了不浪费我之前的Java基础,写一个简单案例记录一下,毕竟进行白盒测试也是一项基本技能,有点Java基础,遇到问题也能打个断点定位一下。
这里只介绍一个入门级的单元测试案例
环境
- jdk1.8
- 开发工具:Intellij IDEA
一、整体架构展示

二、简单案例讲解
1、创建一个maven项目,并导入junit依赖
1.1)创建一个maven项目



1.2)在pom.xml中导入Junit依赖
<dependencies>
<!--Junit依赖-->
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>

2、创建被测试类
- 注:被测试类是Java开发人员已写好的需被测试的类,实际测试中不需要准备,你能看懂Java代码就行,我这里就简单提供计算的测试类
CalculatorDemo
/**
* @author mikasa
* @descrption 被测试类
*/
public class CalculatorDemo {
/**
* 求和
*
* @param a
* @param b
* @return
*/
public int add(int a, int b) {
return a + b;
}
/**
* 求差
*
* @param a
* @param b
* @return
*/
public int sub(int a, int b) {
return a - b;
}
/**
* 求乘积
*
* @param a
* @param b
* @return
*/
public int multiply(int a, int b) {
return a * b;
}
/**
* 求商,注:java的/为求商的整数,商四舍五入
*
* @param a
* @param b
* @return
*/
public int divide(int a, int b) {
return a / b;
}
}
3、创建测试类
注意:
-
1)被测试类和test底下的包要保持一致
例:被测试类属于com.mikasa包下,那在test底下也创建同样的包com.mikasa,将测试类放在该包下 -
2)测试类命名规范:大写Test+被测试类名称 例:TestCalculatorDemo
测试方法命名:test+被测试方法 例:testAdd()

TestCalculatorDemo
import org.junit.Assert;
import org.junit.Test;
/**
* @author mikasa
* @descrption 测试类
*/
public class TestCalculatorDemo {
//实例化被测试类
CalculatorDemo cal = new CalculatorDemo();
/**
* 测试加法
*/
@Test
public void testAdd() {
//断言判断值是否相等
Assert.assertEquals(3, cal.add(1, 2));
}
/**
* 测试减法
*/
@Test
public void testSub() {
Assert.assertEquals(2, cal.sub(1, 2));
}
/**
* 测试乘法
*/
@Test
public void multiply() {
Assert.assertEquals(4,cal.multiply(2,3));
}
/**
* 测试除法
*/
@Test
public void divide() {
Assert.assertEquals(5,cal.divide(5,2));
}
}
基础扩展:
1、Junit断言:
Junit所有的断言都包含在 Assert 类中,这个类提供了很多有用的断言方法来编写测试用例。只有失败的断言才会被记录。Assert 类中的常用方法有如下:
- void assertEquals(boolean expected, boolean actual):检查两个变量或者等式是否相等
- void assertTrue(boolean expected, boolean actual):检查条件为真
- void assertFalse(boolean condition):检查条件为假
- void assertNotNull(Object object):检查对象不为空
- void assertNull(Object object):检查对象为空
2、Junit注解:
- @Test: 声明一个测试案例
- @Before: 每个测试用例执行之前都会执行一次,例如:所有测试用例都需要实例化对象
- @After: 每个测试用例执行之后都会执行一次
- @BeforeClass: 所有测试用例执行之前执行,并且只执行一次
- @AfterClass: 所有测试用例执行之后执行,并且只执行一次
- @Ignore: 忽略有关不需要执行的测试
4、创建测试运行类
TestRunner
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
/**
* @author mikasa
* @descrption 执行测试类
*/
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestCalculatorDemo.class);
for (Failure failure : result.getFailures()) {
System.out.println("错误原因:" + failure.toString());
}
System.out.println("单元测试整体结果:" + result.wasSuccessful());
}
}
5、运行测试运行类,查看结果

更多推荐



所有评论(0)