有人知道如何在最终类中更改方法的返回值。
我正在尝试测试ToBeTested
类,因此我想得到真实的结果。
我尝试使用Powermockito
,但没有找到解决方案。
public final class ToBeChanged {
public static boolean changeMyBehaviour() {
return false;
}
}
public class ToBeTested {
public boolean doSomething () {
if (ToBeChanged.changeMyBehaviour)
return false;
else
return true;
}
}
我不想将
ToBeChanged
类声明为ToBeTested
类中的字段。因此,无法更改已实现的类本身。
最佳答案
使用JMockit工具,测试将如下所示:
@Test
public void doSomething(@Mocked ToBeChanged mock)
{
new NonStrictExpectations() {{ ToBeChanged.changeMyBehaviour(); result = true; }};
boolean res = new ToBeTested().doSomething();
assertTrue(res);
}