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

发表于:2017-8-09 14:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:小林觉    来源:51Testing软件测试网采编

  一、首先简单描述一下下载试题及配置试题的过程
  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<Object[]> 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));
      
  }
  }
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号