Java EasyMock:如何模拟对象的贴图
我是EasyMock的新手,尝试寻找问题的解决方案,但没有找到。我有一个类“Student”,它有几个属性,一个是“Student\u id”,它有所有setter和getter方法。我写了一个这样的函数,它把学生对象的映射作为键,值是他们的CGPA,它返回一个由CGPA排名前5的学生组成的映射Java EasyMock:如何模拟对象的贴图,java,junit,easymock,Java,Junit,Easymock,我是EasyMock的新手,尝试寻找问题的解决方案,但没有找到。我有一个类“Student”,它有几个属性,一个是“Student\u id”,它有所有setter和getter方法。我写了一个这样的函数,它把学生对象的映射作为键,值是他们的CGPA,它返回一个由CGPA排名前5的学生组成的映射 Map<Student,Double> getMaxCPAStudent(Map<Student,Double>) 但是当把它们放在不同分数的地图上时,它们都有相同的键,
Map<Student,Double> getMaxCPAStudent(Map<Student,Double>)
但是当把它们放在不同分数的地图上时,它们都有相同的键,如何测试这个功能
谢谢,
Amit我认为EasyMock在其模拟中覆盖了
hashcode()
和equals()
,因此创建多个模拟学生将永远不会有相同的散列。这意味着你应该能够把它们都放在地图上
因此,您的测试代码不应该与使用此方法编写生产代码时有任何不同。创建一些模拟学生,将他们放在一个映射中,然后调用max方法获取一个新映射,并检查键和值是否正确
有点离题,除非您使用的是Easymock的古老版本,否则您永远不必处理MockControl类
Student mockStudent = EasyMock.createMock(Student.class);
应该可以正常工作。我对您要测试的内容有点困惑。您是在测试
getmaxcpastuent
方法是否返回正确的结果,还是在测试所提供的映射是否按预期进行搜索?我想知道你是否应该嘲笑地图
,而不是学生
。。。
Student mockStudent = EasyMock.createMock(Student.class);