Mokito Framework

Javaアプリケーションをテストするためのコンピュータプログラミングでは、フレームワークMokitoが使用されます。 これはダウンロード可能なオープンソース /フリーのフレームワークです。 これは本質的にはエラー検出に役立つテストフレームワークです。 モックフレームとしてのMokitoの実装は、 'Test Double'オブジェクト、つまりモックオブジェクトを作成する際に機能、モックとのやり取りが正しく行われることを保証します。

イントロ

MokitoはJavaアプリケーションをテストするためのフレームワークです。 複雑なオブジェクトの動作をシミュレートし、単体テストとエラー検出の開発を容易にします。

Mockitoはオープンソースであり、次のアドレスで利用可能です://mockito.org/。

Mockitoは他のオブジェクトの振る舞いをシミュレートするモックオブジェクトの原理に基づいています。

Mockitoテストの実装はいくつかのステップで行われます。

  • モックオブジェクトの作成
  • 予想される動作の説明
  • モックを使う
  • モックとのやりとりが正しいことを確認する

 パブリッククラスClassA {パブリッククラスA(){}パブリック無効fonc1(){}パブリック無効fonc2(){}パブリックint fonc3(int a、int b){return a + b; パブリッククラスClassB {ClasseA ca;} public ClassA getCa(){return ca; public void setCa(ClassA ca){this.ca = ca;} } public ClassB(){ca = new ClassA(); } public void met1(){ca.fonc1();} ca.fonc1(); System.out.println(ca.fonc3(5、6)); } public void met2(){ca.fonc2();} }} 

単体テストクラスClassB:

 static org.mockito.Mockito.mockをインポートします。 org.mockito.Mockitoをインポートします。 パブリッククラステスト{public static void main(String [] args){ClassA ca = mock(ClassA.class);} ClassB cb = new ClassB(); cb.setCa(ca); cb.met1(); Mockito.verify(ca、Mockito×(2))。fonc1(); Mockito.verify(ca、Mockitox(1))。fonc3(Mockito.anyInt()、Mockito.anyInt()); }} 

コード分​​析

ClassA ca = mock(ClassA.class);

=> AC、モッククラスClassAを作成します。

cb.setCa(ca);

=> caオブジェクトからcbオブジェクトに影響します。

cb.met1();

=> cb met1()メソッドでオブジェクトを呼び出します。

Mockito.verify(ca Mockito×(2))。func1();

=>モックca func1のメソッドが2回呼び出されることを確認します。

Mockito.verify(ca、Mockitox(1))。fonc3(Mockito.anyInt()、Mockito.anyInt());

=> mock func3 caのメソッドが2つの整数パラメータによって一度だけ呼び出されることを確認します。

チェックが失敗すると、例外が生成されます。

例:

Mockito.verify(ca、Mockito.atLeast(1))。fonc2();

=>この行は以下の例外を生成します。

スレッド "main"での例外要求されたが呼び出されていない:

 classA.fonc2(); - > Test01.main(Test01.java:16) 

==> ACを模擬するfunc2()メソッドが知られていないことを示します。

関数から返された結果を変更することもできます。

 System.out.println( "" ca.fonc(3, 3)の結果は "+ ca.fonc3(3、3)です); Mockito.when(ca.fonc3(Mockito.anyInt()、Mockito.anyInt()))。then Return(Integer.valueOf(5)); System.out.println( "" ca.fonc(3, 3)の結果は "+ ca.fonc3(3、3)です); 

コード分​​析

 Mockito.when(ca.fonc3(Mockito.anyInt()、Mockito.anyInt())) thenReturn(Integer.valueOf(5)); 

#関数fonc3(mock)の戻り値は0です。

5にします。

これは、いくつかの機能(条件、ループなど)を含む機能を使用していて、その機能の動作を検証したい場合に特に便利です。 したがって、この関数で使用されるモックを、これらすべての条件を満たすように構成する必要があります。

wjaouadiからのヒント。

前の記事 次の記事

トップのヒント