メソッドのjUnit変更動作

アデリナ・ディマチ

一部のメソッドに対していくつかのjUnitテストを行う必要があり、ソースコードを変更できません。ソースコードを変更せずに関数の動作を変更する可能性はありますか?簡単な例を見てください。クラスAとBはソースコードです(変更できません)。JUnitテストのtesting()を介してBで呼び出すときのrun()メソッドの動作をAから変更したい。何か案は?

public class A {
    public String run(){
        return "test";
    } 
}

public class B {
    public void testing() {
        String fromA = new A().run(); //I want a mocked result here
        System.out.println(fromA);
    }
}

public class C {
    @Test
    public void jUnitTest() {
        new B().testing();
        // And here i want to call testing method from B but with a "mock return" from run()         
    }
}
ウラジミールコレネフ

MockitoPowerMockを使用できます

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

@RunWith(PowerMockRunner.class)
@PrepareForTest(B.class)
public class C {
    @Before
    public void setUp() throws Exception {
        A a = spy(new A());
        when(a.run()).thenReturn("mock return");
        PowerMockito.whenNew(A.class).withNoArguments().thenReturn(a);
    }

    @Test
    public void jUnitTest() {
        new B().testing();
    }
}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Mockitoはメソッドの動作を変更します

分類Dev

メソッドの動作を変更せずにメソッドにパッチを適用しますか?

分類Dev

Railsのアップグレードにはメソッドの動作の変更が含まれます

分類Dev

EasyMock-equals()およびその他のオブジェクトメソッドの動作の変更

分類Dev

voidメソッドの動作junitとmockitoをテストする

分類Dev

オブジェクトのメソッドの動作を事前に変更することは可能ですか?

分類Dev

AsyncTaskのget()メソッドの動作は、さまざまなAPIレベルで変更されました

分類Dev

IterableのwhereTypeメソッドの動作

分類Dev

jQueryのattr()メソッドの動作

分類Dev

matplotlibのAxes3D.plot()メソッドと.scatter()メソッドへの入力を変更すると、動作が異なるのはなぜですか?

分類Dev

CompletableFuture ALLOFメソッドの動作

分類Dev

UITableViewwillDisplayCellメソッドの誤動作

分類Dev

toLocaleString()メソッドの奇妙な動作

分類Dev

php DateTimediffメソッドの動作

分類Dev

Wcfメソッドの奇妙な動作

分類Dev

Nullable.GetNullableTypeメソッドの動作

分類Dev

.hover()メソッドの奇妙な動作

分類Dev

PHP関数の動作のようなJavaメソッドの静的変数?

分類Dev

Pythonでのクラスメソッドと静的変数の動作

分類Dev

メソッドを呼び出すときのRuby変数の動作

分類Dev

2つの入力パラメーターのサブタイプに応じてメソッドの動作を変更する

分類Dev

Djangoクラスベースのビューでgetメソッドの動作を変更するためのミックスイン

分類Dev

Builderメソッドの変更

分類Dev

ArrayListのコンテンツを変更するためにCollectionJavaで動作するジェネリックメソッドを作成する

分類Dev

toLocaleString()は、toFixedメソッドを使用した後に動作を変更しますか?

分類Dev

mainメソッドの変更後にコンストラクターに渡されるTreeMapインスタンスの動作は何ですか

分類Dev

@ Before / @ BeforeE各継承動作の変更JUnit4 / JUnit5

分類Dev

クラスの1つのメソッドを動的に変更する

分類Dev

リフレクションによってメソッドの動作を変更するにはどうすればよいですか?

Related 関連記事

  1. 1

    Mockitoはメソッドの動作を変更します

  2. 2

    メソッドの動作を変更せずにメソッドにパッチを適用しますか?

  3. 3

    Railsのアップグレードにはメソッドの動作の変更が含まれます

  4. 4

    EasyMock-equals()およびその他のオブジェクトメソッドの動作の変更

  5. 5

    voidメソッドの動作junitとmockitoをテストする

  6. 6

    オブジェクトのメソッドの動作を事前に変更することは可能ですか?

  7. 7

    AsyncTaskのget()メソッドの動作は、さまざまなAPIレベルで変更されました

  8. 8

    IterableのwhereTypeメソッドの動作

  9. 9

    jQueryのattr()メソッドの動作

  10. 10

    matplotlibのAxes3D.plot()メソッドと.scatter()メソッドへの入力を変更すると、動作が異なるのはなぜですか?

  11. 11

    CompletableFuture ALLOFメソッドの動作

  12. 12

    UITableViewwillDisplayCellメソッドの誤動作

  13. 13

    toLocaleString()メソッドの奇妙な動作

  14. 14

    php DateTimediffメソッドの動作

  15. 15

    Wcfメソッドの奇妙な動作

  16. 16

    Nullable.GetNullableTypeメソッドの動作

  17. 17

    .hover()メソッドの奇妙な動作

  18. 18

    PHP関数の動作のようなJavaメソッドの静的変数?

  19. 19

    Pythonでのクラスメソッドと静的変数の動作

  20. 20

    メソッドを呼び出すときのRuby変数の動作

  21. 21

    2つの入力パラメーターのサブタイプに応じてメソッドの動作を変更する

  22. 22

    Djangoクラスベースのビューでgetメソッドの動作を変更するためのミックスイン

  23. 23

    Builderメソッドの変更

  24. 24

    ArrayListのコンテンツを変更するためにCollectionJavaで動作するジェネリックメソッドを作成する

  25. 25

    toLocaleString()は、toFixedメソッドを使用した後に動作を変更しますか?

  26. 26

    mainメソッドの変更後にコンストラクターに渡されるTreeMapインスタンスの動作は何ですか

  27. 27

    @ Before / @ BeforeE各継承動作の変更JUnit4 / JUnit5

  28. 28

    クラスの1つのメソッドを動的に変更する

  29. 29

    リフレクションによってメソッドの動作を変更するにはどうすればよいですか?

ホットタグ

アーカイブ