3

Junitsにmockitoを使用しています

私はmockitoが静的メソッドをモックしないことを知っていますが、powermockを使用する代わりにこれを回避する方法はありますか?

ありがとう

4

4 に答える 4

5

考えられる回避策は、実際のインスタンスで静的メソッドをカプセル化することです。または静的メソッドの背後にある実際のインスタンス。

ただし、それは本番コードを変更する必要があることを意味します。

正直なところ、今この質問を自問するのは、開発プロセスの後半でコードをテストしていることになります。(現在は伝道中です ;)) TDD を実践していた場合は、この問題に早期に気付き、従来のテスト ソフトウェアで完全にテストできるように設計を早期に調整していたはずです。

私は個人的に、TDD を実践するときに「痛みの指標」を使用して、自分の設計が適切かどうかを確認しています。もちろん、すべてはコンテキストに依存しますが、通常、これは優れた設計の良い指標です (少なくとも私と他の何人かにとって)。

したがって、私のアドバイスは、これらの静的メソッドを取り除くか、静的メソッドのモックに依存しないように設計を修正することです。

乾杯

于 2012-08-27T10:18:14.327 に答える
1

いいえ、PowerMock でこれを行う方法はないと思います。

ただし、 adapterを導入することで、この静的メソッドへの依存を解消できます。

于 2012-08-27T10:15:24.093 に答える
1

あなたが探している「方法」がわからない。多くの人が Mockito と Powermock の両方を一緒に使用していますが、非互換性や競合についての恐ろしい話は聞いたことがありません。静的メソッドをモックする必要がある場合は、Powermock を使用するだけで問題ありません。

または、モッキングが必要な方法で静的メソッドを使用しないようにリファクタリングします。

于 2012-08-27T10:12:42.263 に答える