源代码

试题描述

NextDay是一个简单的日期计算器,计算给定日期的下一天的具体日期。如给定2020年1月1日,返回2020年1月2日;给定2020年1月31日,返回2020年2月1日。主要要求考察学生对日期边界以及异常处理的测试的能力。

测试代码

package io.shentuzhigang.demo.test.nextday;import org.hamcrest.CoreMatchers;
import org.junit.Assert;
import org.junit.Test;import static org.junit.Assert.assertThat;/*** @author ShenTuZhiGang* @version 1.0.0* @email 1600337300@qq.com* @date 2021-05-23 13:37*/
public class NextDayTests {// 有效@Testpublic void testDate01() {Date date, result, expected;date = new Date(2, 29, 2016);result = NextDay.nextDay(date);result.printDate();expected = new Date(3, 1, 2016);Assert.assertEquals(result, expected);date = new Date(1, 28, 2017);result = NextDay.nextDay(date);result.printDate();expected = new Date(1, 29, 2017);Assert.assertEquals(result, expected);date = new Date(1, 31, 2017);result = NextDay.nextDay(date);result.printDate();expected = new Date(2, 1, 2017);Assert.assertEquals(result, expected);date = new Date(4, 30, 2017);result = NextDay.nextDay(date);result.printDate();expected = new Date(5, 1, 2017);Assert.assertEquals(result, expected);date = new Date(12, 31, 2017);result = NextDay.nextDay(date);result.printDate();expected = new Date(1, 1, 2018);Assert.assertEquals(result, expected);date = new Date(12, 31, -1);result = NextDay.nextDay(date);result.printDate();expected = new Date(1, 1, 1);Assert.assertEquals(result, expected);// fixed 方法覆盖String s = date.toString();// fixed 代码行覆盖boolean b = date.equals(null);Year year = new Year(2021);b = year.equals(null);Month month = new Month(5, year);b = month.equals(null);Day day = new Day(21, month);b = day.equals(null);}// 抛出异常@Testpublic void testDate02() {Object[][] exp = {{31, 12, -1, "Not a valid month"},{3, 1, 0, "Not a valid month"},{-1, 1, 1901, "Not a valid month"},{-1, 1, 1901, "Not a valid month"},{13, 1, 1901, "Not a valid month"},{1, -1, 1901, "Not a valid day"},{2, 30, 2016, "Not a valid day"},{2, 29, 2017, "Not a valid day"},{3, 32, 2017, "Not a valid day"},{4, 31, 2017, "Not a valid day"},{4, 32, 2017, "Not a valid day"}};for (Object[] e : exp) {try {Date date = new Date((int) e[0], (int) e[1], (int) e[2]);Date d = NextDay.nextDay(date);} catch (IllegalArgumentException ex) {assertThat(ex.getMessage(), CoreMatchers.containsString((String) e[3]));}}}
}

测试结果

参考文章

幕测平台_使用Junit测试异常,测试NextDay函数

软件测试——NextDay测试相关推荐

  1. 开发转测试没人要_入行或转行软件测试(测试开发)要怎么学

    在2008年刚刚进入这个行业时,我对于要学什么东西,是迷茫的.记得我在08年的时候,入职的公司给我们这批新人做了培训.培训中介绍了很多概念,告诉我们质量很重要,软件测试前景很好,还教了我们很多软件测试 ...

  2. 《软件测试实践--测试Web MSN》 之我的学习笔记(一)

    开篇话: 对于软件测试,对于一名大三的学生来说,我了解的确实不多,也很不全面,可以说是从学长学姐得到一些有些以偏概全的观点: 比如: 1.测试比开发要求的技术门槛要低,简单地来说,测试人员只需要轻点鼠 ...

  3. 软件测试设计与开发,软件测试技术·测试设计与开发.ppt

    软件测试技术·测试设计与开发 * 3.4 评审测试用例 复查测试用例时应该考虑的一些问题: 测试或测试组件完全针对的是需求中列出的功能吗? 测试组件是否覆盖了所有需求? 有冗余的测试吗? 每一个测试步 ...

  4. python调试和测试有什么区别和联系_软件测试和测试开发到底有什么区别跟联系?...

    对于没有进入IT领域的同学而言,软件测试并不陌生,但如果听到测试开发,他们一定会感到十分困惑,这究竟是测试还是开发呢? 按照字面意思理解,大家或许会觉得测试开发是指既能开发产品又能测试产品的" ...

  5. [原创]《敏捷软件测试:测试人员与敏捷团队的实践指南》一书思维图初稿版...

    [原创]<敏捷软件测试:测试人员与敏捷团队的实践指南>一书思维图初稿版 书名:<敏捷软件测试:测试人员与敏捷团队的实践指南> 购买地址:http://product.dangd ...

  6. 软件测试python测试步骤_软件测试员必备基础:3分钟带你入门自动化测试!

    目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够明白自动化测试并很好落地实施的团队还不是非常多,我们接下来用通俗的方式来介绍自动化测试-- 首先我们从招聘岗位需求 ...

  7. 软件测试:测试管理篇

    软件测试:测试管理篇 本节内容 测试需求分析和测试策略制定 测试方案的设计 测试执行流程的设计 测试报告的输出(在系统测试阶段) 测试策略制定 需求,是软件设计与测试的来源.需求除了终端用户的功能需求 ...

  8. 软件测试之第一章 软件测试和测试环境

    第一章 软件测试和测试环境 一. 软件的含义和分类 1 软件的含义 软件是程序.数据和文档的集合. 程序:编程语言:C.C++.Java.php 等. 数据:使用文件或数据库来存储数据. 文档:安装说 ...

  9. 全国大学生软件测试开发者测试大赛笔记总结

    全国大学生软件测试开发者测试大赛笔记总结 (1)常用头文件 import static org.junit.Assert.assertEquals; import java.lang.reflect. ...

最新文章

  1. 盘点程序员写过的惊天Bug:亏损30亿、致6人死亡,甚至差点毁灭世界
  2. python壁纸4k_【python日常学习】爬取4K桌面壁纸
  3. Servlet与缓存
  4. 真相了!敲代码时,程序员戴耳机究竟在听什么?
  5. 解决win7“该文件没有与之关联的程序来执行该操作”
  6. 对MariaDB10.0的Sphinx进行扩展
  7. 程序员每天少吃===活120岁
  8. 历时 7 天,我把一万行 Scala 代码移植到了 Kotlin 上!
  9. Win11如何更改盘符?Win11更改磁盘驱动器号的方法
  10. (3.13)常用知识-元数据函数
  11. ubuntu常用命令(未整理)
  12. 苹果4s怎么绕过id激活_急急急,iPhone4s,怎么绕过激活锁。
  13. 外卖cps淘客项目,一个被动引流躺着赚钱的玩法
  14. NR的SSB子载波间隔讨论——为何无60kHz
  15. Unity入门——UI界面
  16. 2021年后一个算法工程师的门槛有多高?
  17. 【计算机网络】 IP地址划分
  18. 实验三 基本IO口扩展实验
  19. 3999美元掀价格战,Velodyne宣布16线激光雷达降价50%
  20. Python 网络爬虫基础知识及体验

热门文章

  1. 《Unity Shader入门精要》彩图版免费分享~~~~~
  2. 深度学习中的batch、epoch、iteration
  3. Java内存模型(JMM)学习总结
  4. 庆科EMW3080 mxos开发环境搭建helloworld编译
  5. 2018-2019 起风了,唯有努力生存
  6. android壁纸和手机屏幕之间要怎么对应,安卓Android手机屏幕壁纸分辨率选择技巧...
  7. 计算机课程word教学,浅谈计算机Word表格的制作课程教学
  8. 在地产行业做安全?也许你该换个专业的企业级DNS
  9. Flowchart流程图和 Mermaid流程图的对比
  10. 微信摇一摇linux,关于微信摇一摇iBeacon配置流程