2012-04-07 205 views
0

我需要测试排序类,该类使用特定接口类型的数组。该接口只有一个函数,它只比较一个对象并返回一些int值。我正在尝试使用easymock来测试它与jUnit。我陷入了两个问题。 首先,我需要为给定接口创建的每个模拟对象分配一些值。使用EasyMock测试void方法

mock[0] = EasyMock.createMock(CompareValue.class); 

如何为模拟[0]赋值?接口选择compareValue只有以下方法:

int compareVal(Object obj); 

对象将是在分拣类选择compareValue类型

其次,我只有在它接受一个列表,并修改它的类静态无效方法但不要返回任何东西。我不想改变接口或类中的任何代码。我不知道如何检索修改后的列表来检查它是否已正确排序。

回答

1

重写getter而不是将值赋给模拟。

expect(mock[0].getValue()).andRetun(yourValue); 
+0

接口中没有getValue()方法。有什么方法可以直接为模拟对象赋值? – Ramy 2012-04-08 01:02:22

+0

我认为唯一可能的方法是实现一个内部类 – Ramy 2012-04-08 01:09:48

+0

您可以提供一些CompareValue类的细节。 – 2012-04-08 16:10:23