簡體   English   中英

EasyMock:如何模擬對象映射

[英]EasyMock: How to mock map of Objects

我是EasyMock的新手,曾嘗試搜索解決我的問題的方法,但找不到。 我有一個“學生”類,它具有幾個屬性,其中一個是“ student_id”,它具有所有的setter和getter方法。 我編寫了這樣的函數,該函數將Student Map對象作為鍵,值是其CGPA,它返回一個CGPA排名前5位的Map。

Map<Student,Double>  getMaxCPAStudent(Map<Student,Double>)  

在我的測試課中,我寫道:

control = EasyMock.createControl();
mockStudent = control.createMock(Student.class);  

但是,當將它們以不同的分數放入Map中時,它們都將具有相同的鍵,如何測試此功能?

謝謝阿米特

我認為EasyMock在其模擬中覆蓋hashcode()equals() ,因此創建多個模擬學生永遠不會擁有相同的哈希。 這意味着您應該可以將它們全部放入地圖中。

因此,與使用這種方法編寫生產代碼相比,您的測試代碼應該沒有什么不同。 創建一些模擬學生,將其放入Map中,然后調用max方法以獲取新的Map,並檢查鍵和值是否正確。

稍微偏離主題,除非您使用的是Easymock的古代版本,否則您永遠不必處理MockControl類。

Student mockStudent = EasyMock.createMock(Student.class);

應該工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM