Nextday 参数化单元测试(测试用例)设计


一、首先简单描述一下下载试题及配置试题的过程

  1. 配置环境:安装Eclipse、JDK(1.7)、及考试插件 (net.mooctest....*.jar)等;

  2. 登录系统:运行Eclipse: 【MoocTest】 --》【1. Login】--》输入考试密码(mooctest.net --> 我的任务 提供)。如下图

  3. 下载试题:点击上图 菜单【2. Download】,下载试题(注意:一般选择清空工作空间,如果试题不同名,也可以不清空)

  4. 微调环境:PS:这一步一般不是必须的(如果导航栏出现感叹号,一般是因为环境配置不彻底),你可以微调考试环境,直至没有感叹号。一般问题出在JRE版本上,则可以选择 build path, 对应的JRE 重新 Edit,选择 1.7 版本的即可。

  5. 编写测试用例: ctrl+N,选择新建 Java --》Junit Test case --》设置路径、文件名(即测试类名,一般命名规则:***Test.java, 这样做的好处是易于记忆)。接下来在该文件中编写测试用例。具体示例,如下面附录1:代码部分 .

  • 测试用例设计要考虑覆盖准则,语句覆盖、分支覆盖等
  • 技巧,你可以多次提交,然后在结果分析部分查看还有哪些没有被覆盖到,进而补充测试用例。
  1. 运行测试:选择 【MoocTest】 --》【3. Run】,运行结果如下图所示:
  • PS:得分越高越好!
  1. 提交结果:选择 【MoocTest】 --》【4. Submit】.

  2. 查看剩余时间:选择 【MoocTest】 --》【5. Time】

附录1: NextdayTest.java



import static org.junit.Assert.*;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;


@RunWith(value = Parameterized.class)
public class NextdayTest {

	private Date expected;
	
	private Date value;
	
	@Parameters
	public static Collection
  
  
  
    getTestParameters() { // 下面依次设计有效等价类、无效等价类等 //有效等价类 Date d1 = new Date(5, 14, 2014); Date d2 = new Date(5, 13, 2014); //为负日期 // Date d3 = new Date(5, 0, 2014); // Date d4 = new Date(5, -1, 2014); // //为零日期 // Date d5 = new Date(5, 1, 2014); // Date d6 = new Date(5, 0, 2014); //31号 Date d7 = new Date(8, 31, 2015); Date d8 = new Date(8, 30, 2015); Date d9 = new Date(7, 31, 2014); Date d10 = new Date(7, 30, 2014); Date d11 = new Date(7, 1, 2013); Date d12 = new Date(6, 30, 2013); //闰年 Date d13 = new Date(3, 1, 2004); Date d14 = new Date(2, 29, 2004); Date d15 = new Date(2, 29, 2004); Date d16 = new Date(2, 28, 2004); //400年是闰年 Date d17 = new Date(3, 1, 2000); Date d18 = new Date(2, 29, 2000); Date d19 = new Date(3, 1, 2013); Date d20 = new Date(2, 28, 2013); //被4整除,不被100整除 Date d23 = new Date(3, 1, 2100); Date d24 = new Date(2, 28, 2100); //到第二年 Date d21 = new Date(1, 1, 2014); Date d22 = new Date(12, 31, 2013); //下一个月 Date d25 = new Date(1, 31, 2013); Date d26 = new Date(1, 30, 2013); Date d27 = new Date(2, 1, 2013); Date d28 = new Date(1, 31, 2013); Date d29 = new Date(4, 1, 2014); Date d30 = new Date(3, 31, 2014); Date d31 = new Date(5, 1, 2014); Date d32 = new Date(4, 30, 2014); Date d33 = new Date(6, 1, 2014); Date d34 = new Date(5, 31, 2014); Date d35 = new Date(7, 1, 2014); Date d36 = new Date(6, 30, 2014); Object[][] date = new Object[][] { {d1, d2}, // {d3, d4}, // {d5, d6}, {d7, d8}, {d9, d10}, {d11, d12}, {d13, d14}, {d15, d16}, {d17, d18}, {d19, d20}, {d21, d22}, {d23, d24}, {d25, d26}, {d27, d28}, {d29, d30}, {d31, d32}, {d33, d34}, // {d35, d36} }; return Arrays.asList(date); } public NextdayTest(Date expected, Date value) { super(); this.expected = expected; this.value = value; } @Test public void testNextDay() { assertEquals(expected, Nextday.nextDay(value)); } } 
  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM