【发布时间】:2020-01-15 23:13:55
【问题描述】:
我已经阅读了一些关于它的帖子,但没有解决我的问题。我有一个单例类,这个类的一个方法在另一个类中被调用。我需要模拟这个方法调用。
Class SingletonClass
{
public static SingletonClass instance()
{
......
return instance;
}
public boolean methodToBeMocked(Object obj)
{
return false;
}
}
另一个类是:
Class A
{
Object doSomeStuff()
{
......
boolean result = SingletonClass.instance.methodToBeMocked();
}
}
我在我的测试类中模拟方法methodToBeMocked。我尝试使用 doReturn 而不是 thenReturn ,正如其他帖子中所建议的那样,但它没有帮助。
我的测试课是:
Class TestClass{
Class A a = new A();
public void test()
{
SingletonClass singletonClass = mock(SingletonClass.class);
doReturn(true).when(singletonClass).methodToBeMocked(any());
a.doSomeStuff(); // here mocked method returns false
// but if I do this below it returns true !!!!
Object obj = new Object();
boolean result = singletonClass.mockedMethod(obj);
}
}
那么为什么在调用 a.doSomeStuff 时我没有得到真实的结果?这里有什么问题?
【问题讨论】:
-
在这里找到答案,嘲笑单身。 stackoverflow.com/questions/38914433/…