文章目录
IDEA中使用JUnit4进行高效单元测试
现实需求
传统测试方法是在main函数里写测试代码,测试效率比较低。原因一是多个测试不能一起运行,二是需要人为观察输出是否正确。
下面以《剑指Offer(第二版)》面试题4为例,进行说明。
面试题4:二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。
- Java实现
public class FindInMatrix {
/**
* 二维数组中的查找
* @param matrix
* @param rows
* @param columns
* @param num
* @return
*/
public static boolean isFound(int[][] matrix, int rows, int columns, int num){
if(matrix!=null && rows>0 && columns>0){
int row = 0;
int column = columns - 1;
while(row<rows && column>=0){
if(matrix[row][column] == num)
return true;
else if(matrix[row][column] > num)
column--;
else // matrix[row][column] < num
row++;
} // end while
} // end if
return false;
} // end isFound()
} // end class
- 传统方式测试
public class FindInMatrixApp {
public static void main(String[] args) {
// 一 输入 & 测试用例
// 1 矩阵是空指针
int[][] matrix01 = null; // output:查找失败
// 2 矩阵非空
int[][] matrix02 = {
{
1,2,8,9},
{
2,4,9,12},
{
4,7,10,13},
{
6,8,11,15}
};
int num01 = 15; // 2.1 整数是最大值 output: 二维数组中存在 15
int num02 = 1; // 2.2 整数是最小值 output: 二维数组中存在 1
int num03 = 9; // 2.3 整数是中间值 output: 二维数组中存在 9
int num04 = 18; // 2.4 整数大于最大值 output: 查找失败
int num05 = 0; // 2.5 整数小于最小值 output: 查找失败
int num06 = 5; // 2.6 整数是中间值但不存在 output: 查找失败
int num = num06;
// 二 执行
// boolean found = FindInMatrix.isFound(matrix01, 4,4,num);
boolean found = FindInMatrix.isFound(matrix02,4,4,num);
// 三 输出
if(found)