本文共 3357 字,大约阅读时间需要 11 分钟。
本教程以windows7为例,使用的是绿色免安装版的eclipse,下载地址链接(2017.4.27更新):
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; }}
右键项目名称选择“Properties”,在弹出的窗体中选择“Java Build Path”-->选择“Libraries”选项卡-->“Add Library”,在弹出的窗口中选择“Junit”-->“next”,如下图所示:
选择我们需要添加的“Junit”及版本号,添加成功确认即可。
选择项目右键“New”-->“Others”-->“Junit”(在Java目录下)-->“Junit Test Case”。
填写单元测试的名称,勾选“setUp”方法,选择被测试类以及被测试的方法,如图:
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 | 通过 | 源代码修改 之后,测试成功 |