JUnit&JMockitユニットテスト

2894 ワード

JUnit&JMockitユニットテストまとめ
1.JUnitの概要
Javaユニットのテストフレームワークの業界内の応用が多いのはJUnitで、それはKent BeckとErich Gammaによって創立されて、次第にKent BeckのsUnitのxUnit家族の中で最も成功した1つになります.JUnitには独自のJUnitが生態圏を広げている.多くのJavaの開発環境では、ユニットテストのツールとしてJUnitが統合されています.
現在、JUnitの主流バージョンは3.x、4.x、5.xであり、現在も4.xバージョンの使用を推奨し続けており、各IDEにも自動的に統合されている.
2.JMockit概要
Junitユニットテストに基づくフレームワークは、EasyMock、JMock、mockito、JMockitなど多くあります.Mockフレームワークでもstubのテスト方法ができます.しかし、さまざまなテストフレームワークの比較を通じて、JMockitは現在流行しているテスト方法をすべてサポートし、機能が強い.そこでJMockitをJunitユニットテストのフレームワークとして選択する.
JMockitはmockオブジェクトの作成を支援するツールで、Java開発に基づいてJavaテストと開発環境で比類のない優位性があり、さらに重要なのは、仮想オブジェクトの使用を大幅に簡素化することです.
3.Maven統合ユニットテストツール


    4.12
    1.34



   
     org.jmockit
             jmockit
             ${jmockit.version}
             test
      
         
     junit
             junit
             ${junit.versioin}
             test
         

4.ユニットテストの使用
  • JUnit 4基本構文Junit 4.xは以前のバージョンと区別され、表示する必要のない宣言テストクラスはTestCaseに継承されます.Junit annotationを使用してユニットテスト例を作成します.
  • @Test:識別試験方法
  • @Ignore:無視された試験方法または試験クラス
  • @Before:いずれかのテストが実行される前に実行しなければならないコード
  • の初期化方法
  • @After:リソースを解放し、テストの実行後に必要な終了作業を行います.各テストメソッドが実行された後に1回実行され、annotationはpublic voidメソッドを修飾するしかない.
  • @BeforeClass:すべてのテストに対して1回のみ実行され、public static voidでなければなりません.一般的には、データベース接続などの
  • の初期化に必要な消費電力の大きいリソースを使用する.
  • @AfterClass:すべてのテストについて、すべてのテストメソッドの実行が終了した後に1回実行され、public static voidである必要があります.
  • @Parameters:ユニットテストを行う場合、通常、一つの方法でいくつかのcaseをテストする必要があります.Junitはパラメータ化を提供し、方法に対して多様なパラメータの組み合わせテストを容易にします.4.9後に@Ruleと@ClassRuleを導入します.本質的には@BeforeClass、@AfterClass、@Before、@Afterなどのもう一つの実現ですが、機能的にはより柔軟で変化が多く、拡張しやすいだけです.クラスとプロジェクトの共有が容易です.2つの注記は、TestRuleインタフェースを実装したRule変数またはRuleを返す方法の上に置く必要があり、修飾子はpublicでなければなりません.@Ruleは変数またはメソッドレベルの注釈であり、各テストメソッドが実行されると、その注釈によって修飾されたRuleが呼び出されます.@ClassRuleはクラスレベルの注釈であり、単一のテストクラスを実行すると、その注釈によって修飾されたRuleが1回しか呼び出されません.

  • JMockit基礎構文JMockitのテストは、注釈に基づいてより多く実現される.Jmockitでよく使われる注釈は次のとおりです.
  • @Mocked:修飾されたオブジェクトはMockされ、対応するクラスとインスタンスが影響を受けます(同じテストケース)@Mockedはタイプに対して使用され、クラスメンバーのmock荮eldとパラメータのテストパラメータmock parameterをテストするために使用できます.mock
  • @Injectable:Mockのみが修飾されたオブジェクト@Injectableは、クラスメンバーのmockmock
  • @Capturing:mockインタフェースおよびそのすべての実装クラス@Capturingは、Mockされたオブジェクトを識別し、そのオブジェクトから派生したサブクラスもMockされる.maxInstancesメソッドでは、最大でどれだけの層サブクラスがmockされるかを指定できます.もちろん,@Mockedおよび@Injectableと同様にclassまた、タイプに対応しています.
  • @Tested:被験者を指定@Testedは被験者のインスタンスを識別する.@Testedタグで識別された被験者インスタンスは、試験方法の実行前に初期化されます.
  • @Mock:MockUpモードで、Fakeされる方法を指定する