测试 | 单元测试工具 | JUnit | 参数化
被测试类:
package project;
public class MyCalendar2 {
public int getNumberOfDaysInMonth(int year, int month) {
if (month == 1 || month == 3 || month == 6 || month == 7 ||
month == 8 || month == 10 )
return 31;
if (month == 4 || month == 5 || month == 9 || month == 11)
return 30;
if (month == 2) return 28;
return 0; // If month is incorrect
}
}
设计测试数据:
|
输入 |
预计输出 |
|
2018 1 |
31 |
|
2018 2 |
28 |
|
2018 3 |
31 |
|
2018 4 |
30 |
|
2018 5 |
31 |
|
2018 6 |
30 |
|
2018 7 |
31 |
|
2018 8 |
31 |
|
2018 9 |
30 |
|
2018 10 |
31 |
|
2018 11 |
30 |
|
2018 12 |
31 |
|
2018 13 |
0 |
|
2008 2 |
29 |
一般测试:
package project; import static org.junit.Assert.*; import org.junit.Test; /**
*
* @author weiTangzhao
* @Time
*
*/
public class MyCalendar2Test { MyCalendar2 m = new MyCalendar2();
@Test
public void testGetNumberOfDaysInMonth1(){
int days = m.getNumberOfDaysInMonth(2018, 1);
assertEquals(31, days);
} @Test
public void testGetNumberOfDaysInMonth2(){
int days = m.getNumberOfDaysInMonth(2008, 2);
assertEquals(29, days);
} @Test
public void testGetNumberOfDaysInMonth21(){
int days = m.getNumberOfDaysInMonth(2018, 2);
assertEquals(28, days);
}
@Test
public void testGetNumberOfDaysInMonth3(){
int days = m.getNumberOfDaysInMonth(2018, 3);
assertEquals(31, days);
} @Test
public void testGetNumberOfDaysInMonth4(){
int days = m.getNumberOfDaysInMonth(2008, 4);
assertEquals(30, days);
} @Test
public void testGetNumberOfDaysInMonth5(){
int days = m.getNumberOfDaysInMonth(2018, 5);
assertEquals(31, days);
} @Test
public void testGetNumberOfDaysInMonth6(){
int days = m.getNumberOfDaysInMonth(2018, 6);
assertEquals(30, days);
} @Test
public void testGetNumberOfDaysInMonth7(){
int days = m.getNumberOfDaysInMonth(2018, 7);
assertEquals(31, days);
} @Test
public void testGetNumberOfDaysInMonth8(){
int days = m.getNumberOfDaysInMonth(2018,8);
assertEquals(31, days);
}
@Test
public void testGetNumberOfDaysInMonth10(){
int days = m.getNumberOfDaysInMonth(2018, 10);
assertEquals(31, days);
} @Test
public void testGetNumberOfDaysInMonth9(){
int days = m.getNumberOfDaysInMonth(2018, 9);
assertEquals(30, days);
} @Test
public void testGetNumberOfDaysInMonth11(){
int days = m.getNumberOfDaysInMonth(2018, 11);
assertEquals(30, days);
}
@Test
public void testGetNumberOfDaysInMonth12(){
int days = m.getNumberOfDaysInMonth(2018, 12);
assertEquals(31, days);
} @Test
public void testGetNumberOfDaysInMonth13(){
int days = m.getNumberOfDaysInMonth(2018, 13);
assertEquals(0, days);
} }

参数化测试:
package project; import static org.junit.Assert.*; import java.util.Arrays;
import java.util.Collection; import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class)
public class MyCalendar2Test2 { private int input1;
private int input2;
private int expected; /**
* 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求: 1)该方法必须由Parameters注解修饰
2)该方法必须为public static的
3)该方法必须返回Collection类型
4)该方法的名字不做要求
5)该方法没有参数
* @return
*/
@Parameters
@SuppressWarnings("unchecked")
public static Collection prepareData(){
Object[][] object = {{2018,1,31},{2018,2,28},{2018,3,31},{2018,4,30},{2018,5,31},{2018,6,30},
{2018,7,31},{2018,8,31},{2018,9,30},{2018,10,31},{2018,11,30},{2018,12,31},{2018,13,0},{2008,2,29}}; return Arrays.asList(object);
} public MyCalendar2Test2(int input1,int input2,int expected){
this.input1 = input1;
this.input2 = input2;
this.expected = expected;
} @Test
public void testGetNumberOfDaysInMonth(){
MyCalendar2 m = new MyCalendar2();
int result = m.getNumberOfDaysInMonth(input1,input2);
Assert.assertEquals(expected,result);
} }

参考博客:
https://www.cnblogs.com/byron0918/p/4801152.html
测试 | 单元测试工具 | JUnit | 参数化的更多相关文章
- 测试 | 单元测试工具 | JUnit
http://junit.sourceforge.net/javadoc/org/junit/Assert.html 使用: 新建测试类: 在预测试的类上点击右键--->NEW--->Ju ...
- 单元测试工具Junit浅谈
什么是单元测试? 写了一个类和一些方法,给别人用,会不会有bug?那就测一下这些方法吧 怎么测? 用main方法测?不能一起运行,需要人为观察输出是否正确,测试效率低 单元测试能带来什么好处? ...
- Maven的安装配置及初次创建项目与java单元测试工具JUnit
Maven 安装 1.把maven安装包解压到某个位置 2.配置M2_HOME环境变量指向这个位置 3.在path环境变量中添加;%M2_HOME%\bin 配置镜像 国内的阿里云镜 ...
- 11th 单元测试工具JUnit的学习
1.写好一个简易的四则运算的程序 UnitTest类文件: public class UnitTest { int a; int b; int answer;//正确答案 public int plu ...
- Hibernate单元测试工具junit
相关注解 @Text :测试方法 @Before :初始化方法 @After : 释放资源
- 单元测试利器 JUnit 4
引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果.单元测试正是验证代码行为是否满足预期的有效手段之一.但不可否认,做测试是件很枯燥无趣 ...
- [转]单元测试利器 JUnit 4
引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果.单元测试正是验证代码行为是否满足预期的有效手段之一.但不可否认,做测试是件很枯燥无趣 ...
- Java知识积累——单元测试和JUnit(一)
说起单元测试,刚毕业或者没毕业的人可能大多停留在课本讲述的定义阶段,至于具体是怎么定义的,估计也不会有太多人记得.我们的教育总是这样让人“欣 慰”.那么什么是单元测试呢?具体科学的定义咱就不去关心了, ...
- 单元测试实战 - Junit测试
一.对加法函数进行测试 1.实例化被测单元(方法):类名 实例名=new 类名([参数]) 2.调用被测单元,对比预期值和输出值(实际值): 在没有junit测试工具的情况下,我们要进行如下的测试代码 ...
随机推荐
- NOIP2010_T4_引水入城 bfs+贪心
在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个 N 行 M 列的矩形,如上图所示,其中每个格子都代表一座城 市,每座城市都有一个海拔高度.为了使 ...
- Android系统编译错误Note: Some input files use or override a deprecated API. 解决办法【转】
本文转载自:http://blog.csdn.net/lilidejing/article/details/46564491 进入系统framework层修改了下MediaPlayer.java的源码 ...
- cocoapod使用
什么是cocoapod CocoaPods是用于方便使用第三方开源库的管理工具,减少我们对第三方库的各种配置. 安装教程参考: CocoaPods的介绍.安装.使用和原理 Cocoapod安装使用 第 ...
- Log4j输出格式控制--log4j的PatternLayout参数含义
参数 说明 例子 %c 列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间 log4j配置文件参数举例 输出显示媒介 假设当前logger名字 ...
- ab-如何提交post请求
ab -n 1 -c 1 -p post.txt http://***********/ 文件post.txt中存放要post的数据
- bzoj 1098 [POI2007]办公楼biu——链表
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1098 求补图的连通块大小.与自己没有边的和自己在一个连通块里. 用链表把所有点串起来.先给自 ...
- UESTC(LCA应用:求两点之间的距离)
Journey Time Limit: 15000/3000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Bob has ...
- 经验收获Linux终端下方便命令
一.命令行日常系快捷键 如下的快捷方式非常有用,能够极大的提升你的工作效率: CTRL + U - 剪切光标前的内容 CTRL + K - 剪切光标至行末的内容 CTRL + Y - 粘贴 CTRL ...
- AngularJS系统学习之Module(模块)
本文源自:http://blog.csdn.net/woxueliuyun/article/details/50962645 学习之后略有所得, 来此分享.建议看原文. 模块是提供一些特殊服务的功能块 ...
- 解决在IE11浏览器上,css样式不起作用的问题
1.首先下载http://pan.baidu.com/s/1c1DA1Ew并运行; 2.在列表中找到.css双击出现Edit File Type; 3.将MIME Type中改为text/css,点击 ...