2

ランニング

assertThat(collection, allOf(hasItems(i1, i2, i3), hasSize(3)));

Eclipse から (Run as -> Junit) すべて正常に動作しますが、Maven テスト ( ) を実行すると、フェーズmvn clean test中に次の説明で失敗しますtest-compile

[ERROR] The method allOf(Matcher<? super T>, Matcher<? super T>) in the type AllOf<T> is not applicable for the arguments (Matcher<Iterable<Song>>, Matcher<Collection<? extends Object>>)

依存関係は

<dependency>
  <groupId>org.hamcrest</groupId>
  <artifactId>hamcrest-all</artifactId>
  <version>1.3</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit-dep</artifactId>
  <version>4.10</version>
  <scope>test</scope>
  <exclusions>
    <exclusion>
      <artifactId>hamcrest-core</artifactId>
      <groupId>org.hamcrest</groupId>
    </exclusion>
  </exclusions>
</dependency>

私は何を間違っていますか?

ありがとう

ステファノ

4

1 に答える 1

2

hasItemsメソッドとの型引数を指定する必要がありますhasSize。あなたの場合、コンパイラによる自動型推論は機能しません。型引数を指定するには、静的にインポートされたメソッドを使用するのではなく、宣言クラスでそれらを修飾する必要がありますMatchers.<Song>hasItems(i1,i2,i3)

于 2012-12-17T08:30:33.133 に答える