系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
Part1:Mock
Part2:PowerMock
Part3:Junit
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 系列文章目录
- 一、Junit
- 1. 参数化测试
- 2. 测试套件Suite
一、Junit
一、Junit
JUnit是一个开源的java单元测试框架。在1997年,由 Erich Gamma 和 Kent Beck 开发完成。用于编写和运行可重复的测试,是单元测试框架体系xUnit的一个实例(用于java语言)。它包括如下特性:
① 用于测试期望结果的断言(Assertion)
② 用于共享共同测试数据的测试工具
③ 用于方便的组织和运行测试的测试套件
④ 图形和文本的测试运行器
Junit 可以完成关联依赖较少、比较简单的类的单元测试。关联到其他较为复杂的类等模拟环境比较复杂,可以用Jmock 模拟对象。Jmock后面再学
1. 参数化测试
参数化测试允许开发者使用不同的值反复进行相同的测试
步骤:
- 创建测试类和测试方法
- 测试类加注解 @RunWith(Parameterized.class)
- 测试类方法新加参数
- 测试类新加带参数的构造方法
- @Parameterized.Parameters + 方法定义数组
- 测试方法调用,传入input值 和目标结果对比
package com.zy.learnPowerMockito.common;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.*;
@RunWith(Parameterized.class)
public class MyMathTest {
int except;
int input1;
int input2;
@Parameterized.Parameters
public static Collection<Object[]> initDatas() {
return Arrays.asList(new Object[][]{{
3, 1, 2
}, {
4, 2, 2
}, {
5, 1, 4
}});
}
public MyMathTest(int except, int input1, int input2) {
this.except = except;
this.input1 = input1;
this.input2 = input2;
}
@Test
public void add() {
MyMath myMath =new MyMath();
int actNum = myMath.add(input1,input2);
Assert.assertEquals(except, actNum);
}
}
2. 测试套件Suite
–批量运行多个测试类
注解:
@RunWith(Suite.class)
@Suite.SuiteClasses({Class1.class,Class2.class})