用eclipse进行单元测试
-
安装eclipse
-
下载eclipse
-
本教程以windows7为例,使用的是绿色免安装版的eclipse,下载地址链接(2017.4.27更新):http://pan.baidu.com/s/1kVNX7oF
-
-
安装
-
- 右键eclipse.rar-->“解压到当前文件夹”。(注意,不要解压到中文路径下!)
- 安装jdk-8u73-windows-x64.exe,没什么特殊设置,选好路径后一直点“下一步”,直到安装完成。(注意,不要安装到中文路径下!记下安装路径,后面要用!)
-
-
配置环境变量
1、右键“我的电脑”-->“属性”,在弹出的窗口选择“高级系统设置”-->“环境变量”-->点击系统变量下的“新建”-->变量名:classpath 变量值: .;D:\Program Files\Java\jdk1.8.0_73\lib; (注意,变量值为“.;jdk中bin文件夹的路径”,不要忘了前边的“.;”)。如下图所示:
-
2、系统变量下的“新建”-->变量名:JAVA_HOME 变量值:D:\Program Files\Java\jdk1.8.0_73; (变量值为jdk的路径)
如下图所示:
3、点击系统变量中的“path”-->“编辑”-->变量值:D:\Program Files\Java\jdk1.8.0_73\bin;(在最前边加个英文的“;”,再在分号前加上jdk中bin文件夹的路径)。
至此,eclipse安装完成。
-
单元测试
-
源代码
/*
下面代码实现的是最大子数组和算法
Coding.net地址:https://git.coding.net/Aaric/MaximumSubarray.git
*/
package softwareEngineering; public class MaximumSubarray { public int findMaximumSubarray(int n, int[] S_subarray) { int S_sum, S_maxsum = S_subarray[0]; for (int i = 0; i < n; i++) { S_sum = 0; for (int k = i; k < n; k++) { S_sum += S_subarray[k]; if (S_sum > S_maxsum) { S_maxsum = S_sum; } } } return S_maxsum; } }package softwareEngineering; public class MaximumSubarray { public int findMaximumSubarray(int n, int[] S_subarray) { int S_sum,
S_maxsum = 0; //注意,这里有bug,应该改为 S_maxsum = S_subarray[0] for (int i = 0; i < n; i++) { S_sum = 0; for (int k = i; k < n; k++) { S_sum += S_subarray[k]; if (S_sum > S_maxsum) { S_maxsum = S_sum; } } } return S_maxsum; } }
-
-
-
为项目添加Junit
-
右键项目名称选择“Properties”,在弹出的窗体中选择“Java Build Path”-->选择“Libraries”选项卡-->“Add Library”,在弹出的窗口中选择“Junit”-->“next”,如下图所示:
选择我们需要添加的“Junit”及版本号,添加成功确认即可。
-
-
新建Junit
-
选择项目右键“New”-->“Others”-->“Junit”(在Java目录下)-->“Junit Test Case”。
填写单元测试的名称,勾选“setUp”方法,选择被测试类以及被测试的方法,如图:
-
-
测试
- 经过以上步骤就完成了Junit的创建,可以开始写自己的测试代码。
-
package softwareEngineering; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; public class TestUnit01 { @Before public void setUp() throws Exception { /* * 在这里完成测试前的准备工作 * */ } @Test public void testFindMaximumSubarray() { /* * 在这里写测试代码 * */ } }
下面是完整的测试代码
package softwareEngineering;
import static org.junit.Assert.*;
import java.util.Scanner;
import org.junit.Before;
import org.junit.Test;
public class TestUnit01 {
private MaximumSubarray T_maxsum;
private int[] T_vc;
private static final int n=5; //测试数据的个数
private Scanner sc;
@Before
public void setUp() throws Exception {
T_maxsum = new MaximumSubarray();
T_vc = new int[n];
sc = new Scanner(System.in);
for (int i = 0; i < n; i++)
{
T_vc[i] = (Integer)sc.nextInt(); //输入测试数据
}
}
@Test
public void testFindMaximumSubarray() {
int res = T_maxsum.findMaximumSubarray(n, T_vc); //测试
assertEquals(-1,res); //比较测试结果与期望值
}
}按照上述代码修改完毕后,右键,选择“Run as-->1 JUnit Test”来运行单元测试,并在控制台输入要测试的数据。如下图所示:
-
将源代码中指出的bug调整之后,测试结果如下图所示:
以下是我进行单元测试的结果。
-
用例编号 用例描述 输入数据 预期输出值 实际输出值 通过/不通过 评价 1 语句覆盖 1,2,3,4,5 15 15 通过 2 判定条件覆盖 -1,-2,-3,-4,-5 -1 0 不通过 源代码有bug,
需修改
3 判定条件覆盖 -1,-2,-3,-4,-5 -1 -1 通过 源代码修改
之后,测试成功
-
-
结束
-
原创博文,转载请注明出处!
-