0

最終クラスのメソッドの戻り値を変更する方法を知っている人はいますか?

クラスをテストしようとして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。したがって、実装されたクラス自体を変更する方法はありません。

4

2 に答える 2

1

JMockitツールを使用すると、テストは次のようになります。

@Test
public void doSomething(@Mocked ToBeChanged mock)
{
    new NonStrictExpectations() {{ ToBeChanged.changeMyBehaviour(); result = true; }};

    boolean res = new ToBeTested().doSomething();

    assertTrue(res);
}
于 2013-03-22T14:21:55.060 に答える