3

解決策は、hamcrest の後に Junit がロードされるようにすることだと理解しています。JUnitとJMockとhamcrestの両方を含む外部ライブラリをセットアップするintellijプロジェクトがあります。このエラーが表示されないようにするにはどうすればよいですか

4

3 に答える 3

6
  1. junit:junit:4.11 は以前の junit:junit-dep を置き換えます
  2. JUnit 4.11 には、org.hamcrest:hamcrest-core:1.3 jar が依存関係として含まれています。
  3. テストで明示的な Hamcrest マッチャーを使用するには、org.hamcrest:hamcrest-library:1.3 を含めます。
  4. org.mockito:mockito-all:1.9.x - 依存関係としてではなく、jar 内にラップされた古いバージョンの Hamcrest が含まれています。これが犯人です。( https://code.google.com/p/mockito/issues/detail?id=459 )
  5. すべてのテスト依存関係の前に org.hamcrest:hamcrest-core:1.3 を置きます
  6. Maven の依存関係管理セクションを使用して、junit、hamcrest、mockito jar のすべての推移的なバージョンを制御します。たとえば、spring-integration-test には、mockito-all:1.9.0 が推移的に含まれます。
于 2013-10-30T16:52:09.807 に答える
2

ライブラリ(jar)の互換性を確認する必要があります。jar内のクラスが別のjarにあるクラスのメソッドを使用し、この使用されたメソッドが新しく追加され、古いjarを使用している場合、間違いなくjava.lang.NoSuchMethodError.

于 2012-08-22T10:02:37.087 に答える
0

junit.jar ではなく、junit-dep.jar (hamcrest 依存関係を含まない!?) をインポートする必要があります。大規模なプロジェクトで Maven を使用している場合、これには、あいまいな hamcrest と junit のインポートをすべてフラッシュするために、多くの追跡が必要になる可能性があります。

junit の今後のリリースが hamcrest 1.3 と互換性があることが役立つかもしれません

于 2012-08-26T15:20:28.460 に答える