我是EasyMock的新手,尝试搜索我的问题的解决方案但是却找不到。我有一个班级“学生”,它有几个属性,一个是“student_id”,它有所有的setter和getter方法。我编写了一个这样的函数,它将Map of Student对象作为键,值为CGPA,它返回一个由CGPA提供前5名学生的Map。
Map<Student,Double> getMaxCPAStudent(Map<Student,Double>)
在我的测试课中,我写道:
control = EasyMock.createControl();
mockStudent = control.createMock(Student.class);
但是当他们将它们放在具有不同分数的Map中时,它们都将具有相同的键,如何测试此功能?
谢谢, 阿米特
答案 0 :(得分:0)
我认为EasyMock会在其模拟中覆盖hashcode()
和equals()
,因此创建多个模拟学生将永远不会拥有相同的哈希。这意味着您应该能够将它们全部放在Map中。
因此,您的测试代码与使用此方法编写生产代码时不应有任何不同。创建一些模拟学生,将它们放在Map中,然后调用max方法获取新地图并检查键和值是否正确。
稍微偏离主题,除非您使用的是Easymock的 Ancient 版本,否则您永远不必处理MockControl类。
Student mockStudent = EasyMock.createMock(Student.class);
应该工作得很好。