有人知道如何在最终类中更改方法的返回值。

我正在尝试测试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);
}

08-04 12:04