Я прочитал кое-что об этом, но ничего не решило мою проблему.У меня есть класс, который является singleton, и один метод этого класса вызывается внутри другого класса.Мне нужно смоделировать этот вызов метода.
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 называется?Что здесь не так?