也许这是一个新手问题,但找不到答案。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