5

Spring MVC Java プロジェクトのテストにjunit 4.12, jmockit 1.19&を使用しています。spring-test 4.1.1.RELEASE

my でのこれらの依存関係の順序pom.xml:

  • jmockit
  • junit
  • spring-test

サービス レイヤーのテスト ケースは正常に機能しています。コントローラーのテストにのみスプリングテストを使用しています。コントローラーのテスト中に、次のエラーが発生しました。

java.lang.IllegalStateException: JMockit が正しく初期化されていません。jmockit が実行時のクラスパスで junit の前にあることを確認するか、@RunWith(JMockit.class) を使用してください。

@RunWith(JMockit.class )サービス層については、テストクラスで使用してこのエラーを解決しました。

しかし、コントローラーの場合は、で注釈を付ける必要があり@RunWith(SpringJUnit4ClassRunner.class )ます。

このエラーを解決するにはどうすればよいですか?

注:jmockitjunitに入れましたpom.xml

4

3 に答える 3

0

jmockit を自分で使い始めたばかりで、同様のスタイルの問題が発生したため、これで問題が解決するかどうかは完全にはわかりません。

-javaagent: を試してみましたか? すべての JUnit テスト (Eclipse) に適用する最も簡単な方法は、JRE 設定に移動し、VM 引数として追加することです (Preferences->JRE->Edit->VM Defaults)。

さらに、JRE 構成を回避するために javaagent を任意の junit テストに自動的に追加する Eclipse JMockit プラグインを Marketplace 経由で見つけました。

最後に、POM で次のことを試すことができます (ただし、まだ自分でテストしていません)。

        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <argLine>-javaagent:${org.jmockit:jmockit:jar}</argLine>
            </configuration>
        </plugin>

ただし、これは maven で起動されたテストでのみ機能し、IDE では機能しないことに注意してください。junit テストに javaagent を追加する要件を m2e プラグインが理解する方法が見つかりませんでした。

于 2015-09-28T15:50:31.893 に答える