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());
测试完成