也許這是一個新手問題,但找不到答案。Mockito:以複雜對象作爲參數的存根方法
我需要用Mockito存根方法。如果方法有「簡單」的參數,那麼我可以做到。例如,具有兩個參數(汽車顏色和門數)的查找方法:
when(carFinderMock.find(eq(Color.RED),anyInt())).thenReturn(Car1);
when(carFinderMock.find(eq(Color.BLUE),anyInt())).thenReturn(Car2);
when(carFinderMock.find(eq(Color.GREEN), eq(5))).thenReturn(Car3);
問題是find參數是一個複雜的對象。
mappingFilter = new MappingFilter();
mappingFilter.setColor(eq(Color.RED));
mappingFilter.setDoorNumber(anyInt());
when(carFinderMock.find(mappingFilter)).thenReturn(Car1);
此代碼無效。錯誤是「無效使用參數匹配器!1個匹配器預期,2個記錄」。
無法修改「查找」方法,它需要是一個MappingFilter參數。
我想我必須做些什麼來指示Mockito,當mappingFilter.getColor是RED,並且mappingFilter.getDoorNumber是任何的,那麼它必須返回Car1(並且對於另外兩個句子也是一樣的)。 但是如何?
非常好,完美的作品:D – 2013-02-28 16:54:20