6

Seq[String]aが空であるか、Scala で specs2 を使用していないかを確認するにはどうすればよいですか? seq must be emptyorを使用してseq.length must be greaterThan(0)いますが、常に型の不一致エラーが発生します。

ret is Seq[String]

ret.length must be greaterThan(0)

[error] ApiTest.scala:99: type mismatch;
[error]  found   : Int
[error]  required: org.specs2.matcher.Matcher[String]
[error]         ret.length must be greaterThan(0)
4

2 に答える 2

4

タイプの不一致エラーは、投稿したコードとは別のコードが原因だと思います。

あなたの例は次のように動作するはずです:

ret must not be empty

私は試してみて、正しく動作することを確認しました:

 "Seq beEmpty test" should {
    "just work" in {
      Seq("foo") must not be empty
    }
  }

テストごとに複数のアサーションを使用すると、問題が発生する可能性があります。たとえば、次のコードはコンパイルされません。

"Seq beEmpty test" should {
  "just work" in {
    List() must be empty
    Seq("foo") must not be empty
  }
}

これは予想外ですが、コンパイラを支援することで簡単に修正できます。

"Seq beEmpty test" should {
  "just work" in {
    List() must beEmpty
    Seq("foo") must not beEmpty
  }
}
于 2013-04-27T18:03:57.353 に答える
2

specs2 マッチャーを使用してみてくださいhave size。サイズを負にすることはできないため、ゼロでない場合はゼロより大きい必要があります。したがって、次を使用できます。

ret must not have size (0)
于 2012-11-20T10:12:26.127 に答える