20162320刘先润第三周Bag类测试
前言
以下内容是本周Bag代码的课后作业,要求是完成伪代码、产品代码和测试代码,为了书写方便我将伪代码以注释的形式写在了产品代码的后面
测试步骤
1.首先对Bag类引用BagInterface的代码进行复写
2.查阅读Baginterface中需要实现方法的要求,并查找ArrayList中方法的说明,写出如下代码
public class Bag<T> implements BagInterface<T> { //公共接口
ArrayList<T> lxr=new ArrayList<T>();//新声明一个变量
@Override
public int getCurrentSize() {//返回lxr的容量
return lxr.size();
}
@Override
public boolean isEmpty() {//检查Bag是否为空
return lxr.isEmpty();
}
@Override
public boolean add(T newEntry) {//增加一个可进行添加任何东西T的方法add
lxr.add(newEntry);
return false;
}
@Override
public T remove() {
return null;
}
@Override
public boolean remove(T anEntry) {//移除anEntry
lxr.remove(anEntry);
return false;
}
@Override
public void clear() {//移除列表的所有元素
lxr.clear();
}
@Override
public int getFrequencyOf(T anEntry) {//返回一个元素在Bag中出现的次数
int a=0;
for(int i=0;i<lxr.size();i++)
{
if (anEntry==lxr.get(i)){
a++;
}
}
return a;
}
@Override
public boolean contains(T anEntry) {//如果此列表中包含指定的元素,则返回 true。
lxr.contains(anEntry);
return false;
}
}
3.编写JUNIT3测试代码
首先在Bag中放入6个元素,为了方便测试,删去最后一个元素
Bag mybags = new Bag();
mybags.add("book1");
mybags.add("book2");
mybags.add("book3");
mybags.add("book4");
mybags.add("book1");
mybags.add("SB");
mybags.remove("SB");
然后测试getCurrentSize(),assertEquals(5,mybags.getCurrentSize());测试是否为5个元素。
测试bag中的内容是否为空,assertEquals(mybags.isEmpty(),false);
测试add方法,检查Bag中是否含有book1,assertEquals(true,mybags.contains("book1"));
测试remove方法,检查Bag中是否含有“SB”,assertEquals(true,mybags.contains("SB"));
测试GetFrequencyOf,检查book1出现的次数是否为2,assertEquals(2,mybags.getFrequencyOf("book1"));

最后测试clear方法
mybags.clear();
assertEquals(true,mybags.isEmpty());

测试完成
我的码云Bag
测试代码
20162320刘先润第三周Bag类测试的更多相关文章
- MOOC C++笔记(三):类和对象提高
第三周:类和对象提高 this指针 作用 this指针作用就是指向成员函数所作用的对象. 非静态成员函数中可以直接使用this来代表指向该函数作用的指针. 成员函数中默认有一个this指针指向当前对象 ...
- 20162330 第三周 蓝墨云班课 泛型类-Bag 练习
目录 题目及要求 思路分析 遇到的问题和解决过程 代码实现及托管链接 感想 参考资料 题目及要求 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息: 参见Bag的UML图, ...
- 2017-2018-1 Java演绎法 第三周 作业
团队任务:团队展示与选题 团队展示 队员学号及姓名 学号 姓名 主要负责工作 20162315 马军 日常统计,项目部分代码 20162316 刘诚昊 项目部分代码,代码质量测试 20162317 袁 ...
- 20145213《Java程序设计》第三周学习总结
20145213<Java程序设计>第三周学习总结 教材学习内容总结 正所谓距离产生美,上周我还倾心于Java表面的基础语法.其简单的流程结构,屈指可数的基本类型分类,早已烂熟于心的运算符 ...
- 20145304 Java第三周学习报告
20145304 <Java程序设计>第三周学习总结 教材学习内容总结 1.定义类: 类定义时使用class关键词,建立实例要使用new关键词. 代码如下: /*定义类 书上例子 衣服的型 ...
- 20145330《Java程序设计》第三周学习总结
20145330 <Java程序设计>第三周学习总结 第三周知识的难度已经逐步上升,并且一周学习两章学习压力也逐渐加大,需要更高效率的来完成学习内容,合理安排时间. 类与对象 对象(Obj ...
- 20145337《Java程序设计》第三周学习总结
20145337 <Java程序设计>第三周学习总结 教材学习内容总结 类与对象 类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例.我觉得在视频中对类与对象关系的描 ...
- 20145218 《Java程序设计》第三周学习总结
20145218 <Java程序设计>第三周学习总结 教材学习内容总结 定义类 编写程序要产生对象就要先定义类.类是对象的设计图,对象是类的实例.类定义时使用class关键词,建立实例时, ...
- 《Java程序设计》第三周学习总结
20145224-陈颢文 <Java程序设计>第三周学习总结 教材学习内容总结 一.定义类: ·类定义时使用class关键字,要对类中变量(值域成员/对象数据成员)行类型声明. class ...
随机推荐
- Error Curves HDU - 3714
Josephina is a clever girl and addicted to Machine Learning recently. She pays much attention to a m ...
- 数据分析神器Colab的初探
为什么要使用Colab 使用过Jupyter(参看<「极客时间」带来的社区价值思考>章节:社区交流的基建设施)的朋友,一定会醉心于它干净简洁的设计,以及在"摆脱Python命令行 ...
- [POI2010]CHO-Hamsters
KMP暴力求出next数组后 实际上是一个最短路问题,floyed搞一搞 然而会TLE 矩阵优化一下即可(倍增floyed) KMP在弱数据下可以AC..正解请看其他人博客 # include < ...
- [BZOJ1051] [HAOI2006] 受欢迎的牛 (强联通分量)
Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也 ...
- MySQL根据出生日期计算年龄的五种方法比较
方法一 SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age 方法一,作者也说出了缺陷,就是当日 ...
- jsp常用的jstl语法
<c:forEach items="<object>" begin="<int>" end="<int>&q ...
- hadoop-eclipse-plugin-2.x.x 插件编译
在网上找的hadoop for eclipse 插件都不能用,决定自己去编译一个.Hadoop 提供了一个 Eclipse 插件以方便用户在 Eclipse 集成开发环境中使用 Hadoop,如管理 ...
- 百度和谷歌的逆地址解析及GPS、谷歌地图和百度地图坐标之间的转换(python版)
#!/usr/bin/env python # coding:utf-8 # @author: KaiVen """ GPS坐标转换: WGS-84:是国际标准,GPS坐 ...
- 【RMAN】Oracle中如何备份控制文件?备份控制文件的方式有哪几种?
真题1. 如何备份控制文件?备份控制文件的方式有哪几种? 答案:备份控制文件的方式有多种. ① 备份控制文件可以在线进行: SQL> ALTER DATABASE BACKUP CONTROLF ...
- 笔记:I/O流-对象序列化
Java 语言支持一种称为对象序列化(Object Serialization)的非常通用的机制,可以将任何对象写入到流中,并在之后将其读回,首先需要支持对象序列化的类,必须继承与 Serializa ...