我有一个地址簿,部分要求是返回该地址簿中的条目。理想情况下,这应该足够简单,我有一个forloop循环遍历我的链表,直到它不等于null。我只是为所有信息调用get方法,例如 list.get(ⅰ).getAge(); list.get(ⅰ).getName();
但是我必须做TDD Junit所以我需要提供一个断言来检查它是否已正确实现并且期望值(所有条目)等于返回的条目。关于我如何做这个断言测试的任何想法?我努力输入预期的价值,因为它的多个条目我不确定预期的价值是什么......如果它是一个条目,那么期望就是一个对象然而因为它一次是多重的,我不确定。
很抱歉,如果这是短暂的/经过审核的,请不要发布代码,以防我班上的人复制。
答案 0 :(得分:0)
如果我正确理解了这个问题,那么你正在编写一个单元测试来检查一个名为Person的类的每个getter函数的实现。
每个方法都应该有自己的测试方法(即testgetAge,testgetName等),理论上,每个测试用例也应该有自己的方法。例如,您可能有一种方法可以测试人的年龄不会超过200,或者从不低于0等。
在一个测试失败的情况下,你想要在不同的情况下这样做的原因是,你不必弄清楚哪个条件被违反了。
然而,在某些情况下 - 使用简单的课程这不实用。相反,你应该为你的测试方法编写一个数据提供者,提供者将有一对数据对(你喜欢的任何格式)的列表,其中一对中的一个项目是期望值,而另一个项目是被测试的对象
例如:
private final List<Object[]> people = new ArrayList<>()
public void setup(){
people.add(30, new Person(30, "Jeff"))
people.add(50, new Person(50, "Bill"))
}
public void testGetAge(){
setup();
for(Object[] entry : people){
self::assertEquals(entry[0], entry[1].getAge());
}
}
某些测试框架支持通过注释提供数据提供者