EasyMock / PowerMockを使用してプライベートメソッド内でvoidメソッドが呼び出されたことを確認します

スティーブ

私はこのような方法を持っています(簡略化)

private boolean x = someMethodToSetTheValueOfX();

private void method(args){
        if(x){
             method1();
        }else{
             method2();
        }
}

xが真の場合、method1が呼び出されることを保証する単体テストを作成したいと思います。PowerMockのホワイトボックスを使用してxの値を設定し、メソッドを呼び出すことができることは知っていますが、method1()が呼び出されたことを確認するにはどうすればよいですか?method1()は無効であることに注意してください。

EasyMock / PowerMock以外の別のフレームワーク(Mockitoなど)を使用することは許可されていません。

GhostCat

あなたはこれを間違えています。それはあなたがあなたのテストを設計する方法ではありません。

まず第一に:PowerMock ...フレームワークの使用に注意してください。それらはバイトコード操作に依存しています。そして遅かれ早かれそれはトラブルを必要とします。PowerMock(ito)を使用する唯一の合理的な状況は、レガシー製品コードをテストする必要がある場合です。その他の状況:簡単にテストできるように、製品コードを変更します。

次に、この方法でコードをテストしないでください。

モックフレームワークを使用して、「テスト対象クラス」に渡すオブジェクトを作成/制御します。フレームワークを使用して「テスト対象クラス」を直接テストすることはありません。具体的には、プライベートメソッドを認識しているテストコードを記述したくない場合です。これらは実装の詳細です。

代わりに何をしますか:

a)前述のように、モックを使用して、テスト対象のクラスにオブジェクトを渡すことができます。そして、それらのモックを制御/検証して、「テスト中のクラス」が行うと予想される呼び出しを確認できます。したがって、最悪の場合、method1 / 2を別のオブジェクトに配置できます。次に、モック/検証を使用して、期待どおりに呼び出されたかどうかを確認できます。

b)「テスト対象クラス」のオブジェクトを作成し、それらのオブジェクトのプロパティを「アサート」します。または、メソッド呼び出しが返す結果。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

EasyMock.expect()を呼び出すときに呼び出されるEasyMockおよびPowermockを介してモックされた静的メソッド

分類Dev

EasyMockでvoidメソッドが呼び出されなかったことをテストする

分類Dev

PowerMock(EasyMock)を使用してパッケージの保護された静的メソッドが呼び出されるたびに例外をスローする

分類Dev

easymockを使用して、繰り返しvoidメソッド呼び出し

分類Dev

EasyMock voidメソッド

分類Dev

EasyMock:Voidメソッド

分類Dev

EasyMockテスト対象のメソッドから呼び出されたvoidメソッドの引数をキャプチャする方法は?

分類Dev

検証が終了した後、tearDownメソッドでモックへの呼び出しを検証するEasyMock

分類Dev

EasyMockを使用して別のメソッドによって呼び出されるメソッドをモックする方法は?

分類Dev

EasyMock予期しないメソッド呼び出しが予期されました:1、実際:2 java.lang.AssertionError:

分類Dev

予想されるメソッド呼び出しへの引数を複数回キャプチャする(EasyMock)

分類Dev

EasyMockを使用してvoidメソッドをテストする方法

分類Dev

PowerMockおよびEasyMockで静的メソッドをモックしようとするとClassNotFoundException

分類Dev

EasyMockを使用してメソッドをモックする方法

分類Dev

EasyMock + PowerMockを使用して静的メソッドをモックするときのjava.lang.ExceptionInInitializerError

分類Dev

EasyMockが期待されるメソッドに対してNullを返す

分類Dev

EasyMockを使用したorg.openide.nodes.Nodeメソッド呼び出しで関数をカバーできません

分類Dev

EasyMockを使用してモックしたいクラスへの複数の内部呼び出しを持つメソッドを単体テストするにはどうすればよいですか

分類Dev

Easymock-ネストされたvoidメソッドテスト(スパイ)

分類Dev

PowerMock EasyMockの基礎

分類Dev

EasyMockはメソッドが同じテストで複数の異なるオブジェクトを返すことを期待しています

分類Dev

JdbcTemplateのEasyMockアサーションエラー-予期しないメソッド呼び出し

分類Dev

easymock-voidsetterメソッドのパルマとしてanyObjectを使用するためのモック

分類Dev

easymockを使用して静的メソッド/フィールドに注入しますか?

分類Dev

PowerMockitoを使用して、最終クラスのプライベート静的メソッドが呼び出されることを確認します

分類Dev

EasyMockの「予期しないメソッド呼び出し」は、期待されるメソッド宣言にもかかわらず

分類Dev

ワイルドカードのジェネリックを返すメソッドの呼び出しをEasyMockにするにはどうすればよいですか?

分類Dev

TestNGでEasyMockを使用する

分類Dev

EasyMockとジェネリッククラスを返すメソッド

Related 関連記事

  1. 1

    EasyMock.expect()を呼び出すときに呼び出されるEasyMockおよびPowermockを介してモックされた静的メソッド

  2. 2

    EasyMockでvoidメソッドが呼び出されなかったことをテストする

  3. 3

    PowerMock(EasyMock)を使用してパッケージの保護された静的メソッドが呼び出されるたびに例外をスローする

  4. 4

    easymockを使用して、繰り返しvoidメソッド呼び出し

  5. 5

    EasyMock voidメソッド

  6. 6

    EasyMock:Voidメソッド

  7. 7

    EasyMockテスト対象のメソッドから呼び出されたvoidメソッドの引数をキャプチャする方法は?

  8. 8

    検証が終了した後、tearDownメソッドでモックへの呼び出しを検証するEasyMock

  9. 9

    EasyMockを使用して別のメソッドによって呼び出されるメソッドをモックする方法は?

  10. 10

    EasyMock予期しないメソッド呼び出しが予期されました:1、実際:2 java.lang.AssertionError:

  11. 11

    予想されるメソッド呼び出しへの引数を複数回キャプチャする(EasyMock)

  12. 12

    EasyMockを使用してvoidメソッドをテストする方法

  13. 13

    PowerMockおよびEasyMockで静的メソッドをモックしようとするとClassNotFoundException

  14. 14

    EasyMockを使用してメソッドをモックする方法

  15. 15

    EasyMock + PowerMockを使用して静的メソッドをモックするときのjava.lang.ExceptionInInitializerError

  16. 16

    EasyMockが期待されるメソッドに対してNullを返す

  17. 17

    EasyMockを使用したorg.openide.nodes.Nodeメソッド呼び出しで関数をカバーできません

  18. 18

    EasyMockを使用してモックしたいクラスへの複数の内部呼び出しを持つメソッドを単体テストするにはどうすればよいですか

  19. 19

    Easymock-ネストされたvoidメソッドテスト(スパイ)

  20. 20

    PowerMock EasyMockの基礎

  21. 21

    EasyMockはメソッドが同じテストで複数の異なるオブジェクトを返すことを期待しています

  22. 22

    JdbcTemplateのEasyMockアサーションエラー-予期しないメソッド呼び出し

  23. 23

    easymock-voidsetterメソッドのパルマとしてanyObjectを使用するためのモック

  24. 24

    easymockを使用して静的メソッド/フィールドに注入しますか?

  25. 25

    PowerMockitoを使用して、最終クラスのプライベート静的メソッドが呼び出されることを確認します

  26. 26

    EasyMockの「予期しないメソッド呼び出し」は、期待されるメソッド宣言にもかかわらず

  27. 27

    ワイルドカードのジェネリックを返すメソッドの呼び出しをEasyMockにするにはどうすればよいですか?

  28. 28

    TestNGでEasyMockを使用する

  29. 29

    EasyMockとジェネリッククラスを返すメソッド

ホットタグ

アーカイブ