【发布时间】:2016-03-19 01:16:03
【问题描述】:
我有一个名为MyClass 的课程。我在那个类中有一个方法,public int getSpacing()。
我正在测试来自不同类的方法。 public static ArrayList<SpecialObject> getSpecialObjects().
getSpecialObjects() 在 MyClass 的实例上调用 getSpacing()。当我使用 Mockito 运行测试时,我希望此方法始终返回 0。我怎样才能做到这一点?我发现的所有示例都需要对象的特定实例才能模拟方法。
这是我知道该怎么做的。
MyClass myInstance = new MyClass();
Mockito.when(myInstance.getSpacing()).thenReturn(0);
但是,我想为MyClass 的所有实例覆盖getSpacing() 的行为,因为这些实例是在getSpecialObjects() 中动态创建的。我该怎么做?
这就是我想说但不知道怎么说的。
Mockito.when((Any instance of MyClass).getSpacing()).thenReturn(0);
【问题讨论】:
-
myInstance需要初始化。可以显示你的代码吗? -
@JaredBurrows 我修复了这个例子。这是我的代码的简化版本。我的问题是我无权访问该实例,我想覆盖所有实例的行为。
-
我认为这是不可能的,你有没有机会在你需要的地方注入一个模拟实例?
标签: java android unit-testing junit mockito