1

JMockでクラスをモックしてメソッドをテストするコードを記述しようとしています。このメソッドは、内部で3つの異なるメソッドを呼び出します(そのうちの1つはプライベートメソッドです)。私は3つの内部メソッドすべてに期待を設定しました。次に、テスト中のメソッドを呼び出します。テストケースは、プライベートメソッドが呼び出されることを期待していて、呼び出されなかったと言って失敗します。何が起こっているのかというと、2つの内部メソッド(デフォルトのアクセス指定子を使用)は正常にモックされていますが、プライベートメソッドはモックされておらず、実際、コントロールは実際のプライベートメソッドの内部に到達して問題を引き起こしています。プライベートメソッドのアクセス指定子をデフォルトのアクセスに変更すると、すべてが正常に機能しますが、それはしたくありません。誰かがこの動作を説明し、この問題を解決する方法を教えてもらえますか?

4

2 に答える 2

1

JMockは、単純で単純なプライベートメソッドをモックすることはできません。Mockitoはプライベートメソッドをモックすることもできません。本当にプライベートメソッドをモックしたい場合は、PowerMockフレームワークを使用する必要があります。

于 2012-04-22T00:01:29.587 に答える
0

Jmockitも使用できます。これは、このユースケースに使用できる優れたライブラリです。使用できるキーワード:「Deencapsulation」。

于 2015-10-29T12:30:30.860 に答える