当前位置: 首页 > news >正文

【单元测试】任务3:JUnit assertThat断言

1. 任务前置知识

2. 任务周期安排

3. 任务参考文档

4. 任务实现要求

4.1. Eclipse引入相关包

4.2. JUnit assertThat断言方法—一般匹配符

4.3. JUnit assertThat断言方法—字符串相关匹配符

4.4. JUnit assertThat断言方法—数值相关匹配符

4.5. JUnit assertThat断言方法—集合相关匹配符


需要技能竞赛软件测试资料的同学们可s聊我,详细了解

1. 任务前置知识

  • Java程序设计:掌握Java基础使用;
  • Eclipse:掌握Eclipse中jar包的导入操作;
  • JUnit:掌握JUnit assertThat断言的语法使用。

2. 任务周期安排

共3学时,任务内容如下:

  • Eclipse项目中引入相关包;
  • JUnit assertThat断言—一般匹配符;
  • JUnit assertThat断言—字符串相关匹配符;
  • JUnit assertThat断言—数值相关匹配符;
  • JUnit assertThat断言—集合相关匹配符。

3. 任务参考文档

  • Junit相关jar包;
  • Hamcrest-core相关jar包;
  • Hamcrest-library相关jar包。

4. 任务实现要求

4.1. Eclipse引入相关包

  • 删除JUnit;
  • 在Eclipse项目中引入Hamcrest、JUnit包。

4.2. JUnit assertThat断言方法—一般匹配符

        使用JUnit assertThat给下面的代码段设计测试类,写出测试方法并执行测试,使用assertThat中的allof、anyof、anthing、is、not来进行判断。

        具体要求如下:

  • 减法方法计算10-7,判断计算的值在2和4之间;
  • 减法方法计算10-7,判断计算的值大于2或者小于1;
  • 减法方法计算10-7,判断计算的值大于4或者小于7;
  • 减法方法计算10-7,判断无论什么条件都测试通过;
  • 减法方法计算10-7,判断是否等于3;
  • 减法方法计算10-7,判断不等于2;
  • 除法方法计算8/4,判断计算的值在1和3之间;
  • 除法方法计算8/4,判断计算的值大于1或者小于1;
  • 除法方法计算8/4,判断计算的值大于8或者小于3;
  • 除法方法计算8/4,判断无论什么条件都测试通过;
  • 除法方法计算8/4,判断是否等于2;
  • 除法方法计算8/4,判断不等于1。
public class AssertThat2 {private static int result;public void substract(int m, int n) {result = m - n;}       public void divide(int m, int n) {result = m / n;}public void clear() {result = 0;}public int getResult() {return result;}
} 

4.3. JUnit assertThat断言方法—字符串相关匹配符

        使用JUnit assertThat给下面的代码段设计测试类,写出测试方法并执行测试,使用assertThat中的containsString、endsWith、startsWith、equalTo、equalToIgnoringCase、equalToIgnoringWhiteSpace来进行判断。

        具体要求如下:

  • 信息为:名称“Tomcat”、年龄“5”;
  • 判断名称中是否包含“om”;
  • 判断名称是否以“To”开头;
  • 判断名称是否以“at”结束;
  • 判断名称是否是“Tomcat”;
  • 判断名称忽略大小写是否同“tomCat”一致;
  • 判断名称忽略头尾空格是否同“ Tomcat ”一致;
  • 判断年龄是否是“5”。
public class Pet {private static String name;private static int age;public Pet(String namep,int agep) { name = namep;age = agep;		}  //获取名称public String getName() {return name;		}//获取年龄public int getAge() {return age;}
} 	

4.4. JUnit assertThat断言方法—数值相关匹配符

        使用JUnit assertThat给下面的代码段设计测试类,写出测试方法并执行测试,使用assertThat中的closeTo、greaterThan、lessThan、greaterThanOrEqualTo、lessThanOrEqualTo来进行判断。

        具体要求如下:

  • 减法方法计算8.8-7.5,判断计算的值大于1或者小于2;
  • 减法方法计算8.8-7.5,判断计算的值大于等于1或者小于等于1.5;
  • 减法方法计算8.8-7.5,判断计算的值在1±0.5范围内并且也在2±0.8范围内。
public class AssertThat {private static double result;public void substract(double m, double n) {result = m - n;}public void clear() {result = 0;}public double getResultOne() {return result;}	
}  	

4.5. JUnit assertThat断言方法—集合相关匹配符

        使用JUnit assertThat给下面的代码段设计测试类,写出测试方法并执行测试,使用assertThat中的hasItemInArray、hasItem、hasItems、containsInAnyOrder、hasEntry、hasKey、hasValue来进行判断。

        具体要求如下:

  • 方法一传入数据("ABC","DEF","GHI"),判断数组中是否包含以“DE”开头的元素;
  • 方法二传入数据("Magci","Fred","Hero","Alice"),判断集合中是否有“e”结尾的元素;
  • 方法二传入数据("Magci","Fred","Hero","Alice"),判断"Magci","Fred"在集合中并且"Tom","Cat"不在集合中;
  • 方法二传入数据("Magci","Fred","Hero","Alice"),判断集合中是否只包含"Magci","Fred","Hero","Alice"四个元素或者只包含"Fred","Hero"两个元素;
  • 方法三传入数据("name","Fred","age","18"),判断集合中键值对"name","Fred"或者键值对"age","18";
  • 方法三传入数据("name","Fred","age","18"),判断集合中不包含键值"weight";
  • 方法三传入数据("name","Fred","age","18"),判断集合中包含忽略大小写的元素值"fred"。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AssertThat {//方法一public String[] getString(String a,String b,String c) {  String[] s = {a,b,c};return s;  } //方法二public List<String> getList(String al,String bl,String cl,String d1) {  List<String> l = new ArrayList<String>();l.add(al);l.add(bl);l.add(cl);l.add(d1);return l;  }  //方法三  public Map<String, String> getMap(String keyo, String valueo,String keyt, String valuet) {Map<String, String> m = new HashMap<String, String>();m.put(keyo, valueo);  m.put(keyt, valuet);  return m;  }
}

 


http://www.mrgr.cn/news/37280.html

相关文章:

  • ppython 实现k nearest neighbours k最近邻分类算法
  • python 实现knn sklearn K近邻分类算法
  • LeetCode //C - 387. First Unique Character in a String
  • Spring Boot 进阶- Spring Boot日志框架介绍
  • ArcGIS与ArcGIS Pro去除在线地图服务名单
  • C++:笔试题
  • 深入理解C#中的装箱与拆箱操作及其性能影响
  • 力扣经典笔试题 最小K个数 小根堆 大根堆 快速排序 一题多解
  • 硬件设计很简单?合宙低功耗4G模组Air780E—开机启动及外围电路设计
  • 代码随想录算法训练营第四四天| 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 392.判断子序列
  • 大学生科技竞赛系统小程序的设计
  • Day 2 词汇备战
  • MySQL_插入、更新和删除数据
  • 【Python报错已解决】TypeError: list indices must be integers or slices, not str
  • [网络]数据链路层-MAC帧与ARP协议
  • java日志门面之JCL和SLF4J
  • ICM20948 DMP代码详解(46)
  • 个人文章汇总(MyBatis)
  • 解决 Adobe 盗版弹窗
  • Linux在桌面和服务器领域的最新技术趋势,包括3D桌面、虚拟技术、安全性提升等维度。