【单元测试】任务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; }
}