很多时候,我们在开发中写单元测试的时候,当对同一个方法的不同边界取值时,需要写多个单元测试来达到分支覆盖的效果,例如测试两个数相除,至少需要测试以下几个情况:
1、被除数为0的情况
2、除数为整数的情况
3、除数为小数的情况
所以,我们至少需要写三个单元测试。
下面来介绍一下使用Junit来进行参数化的测试,可以通过批量构建测试参数,从而达到全覆盖的目的,首先还是来先看一段代码:
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
// 该RunWith是参数化测试特有的
@RunWith(Parameterized.class)
public class Parameter {
private int expected;// 期望的结果
private int input1;// 除数
private int input2;// 被除数
private static Div div = null;// 两个数相除的方法
/**
* 构造函数,用来赋值
* @param expected
* @param input1
* @