1

良い時間!

クラスのプライベート void メソッドをモック実装に置き換える必要がありますが、これを行う方法がわかりません。私はそのような構造を使用しようとしました:

Test test = PowerMock.createPartialMock(Test.class, "setId");
PowerMock.expectPrivate(test , "setId", EasyMock.anyLong()).andAnswer(
    new IAnswer<Void>() {
        @Override
        public Void answer() throws Throwable {
            return null;
        }
    });
PowerMock.replay(test);

しかし、WhiteBox と呼ばれる内部の PowerMock のクラスは、私のタスクにとって間違った "setId" メソッドを呼び出します。メソッドの呼び出しを回避し、メソッド本体をカスタムのものに置き換える方法を提案してください。

4

2 に答える 2

2

ついに。私は解決策を持っています。問題は、次の注釈を見逃していたことです。

@RunWith(PowerMockRunner.class)
@PrepareForTest(Test.class)

とにかく、PowerMock を機能させるには、いくつかの注釈を追加する必要があるというのは、ややこしいようです。それがレガシー コードでない場合は、Mockito を使用したいと思います。

于 2013-06-11T05:48:12.493 に答える