软件测试——NextDay测试
源代码
试题描述
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测试相关推荐
- 开发转测试没人要_入行或转行软件测试(测试开发)要怎么学
在2008年刚刚进入这个行业时,我对于要学什么东西,是迷茫的.记得我在08年的时候,入职的公司给我们这批新人做了培训.培训中介绍了很多概念,告诉我们质量很重要,软件测试前景很好,还教了我们很多软件测试 ...
- 《软件测试实践--测试Web MSN》 之我的学习笔记(一)
开篇话: 对于软件测试,对于一名大三的学生来说,我了解的确实不多,也很不全面,可以说是从学长学姐得到一些有些以偏概全的观点: 比如: 1.测试比开发要求的技术门槛要低,简单地来说,测试人员只需要轻点鼠 ...
- 软件测试设计与开发,软件测试技术·测试设计与开发.ppt
软件测试技术·测试设计与开发 * 3.4 评审测试用例 复查测试用例时应该考虑的一些问题: 测试或测试组件完全针对的是需求中列出的功能吗? 测试组件是否覆盖了所有需求? 有冗余的测试吗? 每一个测试步 ...
- python调试和测试有什么区别和联系_软件测试和测试开发到底有什么区别跟联系?...
对于没有进入IT领域的同学而言,软件测试并不陌生,但如果听到测试开发,他们一定会感到十分困惑,这究竟是测试还是开发呢? 按照字面意思理解,大家或许会觉得测试开发是指既能开发产品又能测试产品的" ...
- [原创]《敏捷软件测试:测试人员与敏捷团队的实践指南》一书思维图初稿版...
[原创]<敏捷软件测试:测试人员与敏捷团队的实践指南>一书思维图初稿版 书名:<敏捷软件测试:测试人员与敏捷团队的实践指南> 购买地址:http://product.dangd ...
- 软件测试python测试步骤_软件测试员必备基础:3分钟带你入门自动化测试!
目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够明白自动化测试并很好落地实施的团队还不是非常多,我们接下来用通俗的方式来介绍自动化测试-- 首先我们从招聘岗位需求 ...
- 软件测试:测试管理篇
软件测试:测试管理篇 本节内容 测试需求分析和测试策略制定 测试方案的设计 测试执行流程的设计 测试报告的输出(在系统测试阶段) 测试策略制定 需求,是软件设计与测试的来源.需求除了终端用户的功能需求 ...
- 软件测试之第一章 软件测试和测试环境
第一章 软件测试和测试环境 一. 软件的含义和分类 1 软件的含义 软件是程序.数据和文档的集合. 程序:编程语言:C.C++.Java.php 等. 数据:使用文件或数据库来存储数据. 文档:安装说 ...
- 全国大学生软件测试开发者测试大赛笔记总结
全国大学生软件测试开发者测试大赛笔记总结 (1)常用头文件 import static org.junit.Assert.assertEquals; import java.lang.reflect. ...
最新文章
- 盘点程序员写过的惊天Bug:亏损30亿、致6人死亡,甚至差点毁灭世界
- python壁纸4k_【python日常学习】爬取4K桌面壁纸
- Servlet与缓存
- 真相了!敲代码时,程序员戴耳机究竟在听什么?
- 解决win7“该文件没有与之关联的程序来执行该操作”
- 对MariaDB10.0的Sphinx进行扩展
- 程序员每天少吃===活120岁
- 历时 7 天,我把一万行 Scala 代码移植到了 Kotlin 上!
- Win11如何更改盘符?Win11更改磁盘驱动器号的方法
- (3.13)常用知识-元数据函数
- ubuntu常用命令(未整理)
- 苹果4s怎么绕过id激活_急急急,iPhone4s,怎么绕过激活锁。
- 外卖cps淘客项目,一个被动引流躺着赚钱的玩法
- NR的SSB子载波间隔讨论——为何无60kHz
- Unity入门——UI界面
- 2021年后一个算法工程师的门槛有多高?
- 【计算机网络】 IP地址划分
- 实验三 基本IO口扩展实验
- 3999美元掀价格战,Velodyne宣布16线激光雷达降价50%
- Python 网络爬虫基础知识及体验
热门文章
- 《Unity Shader入门精要》彩图版免费分享~~~~~
- 深度学习中的batch、epoch、iteration
- Java内存模型(JMM)学习总结
- 庆科EMW3080 mxos开发环境搭建helloworld编译
- 2018-2019 起风了,唯有努力生存
- android壁纸和手机屏幕之间要怎么对应,安卓Android手机屏幕壁纸分辨率选择技巧...
- 计算机课程word教学,浅谈计算机Word表格的制作课程教学
- 在地产行业做安全?也许你该换个专业的企业级DNS
- Flowchart流程图和 Mermaid流程图的对比
- 微信摇一摇linux,关于微信摇一摇iBeacon配置流程