2
specs2を使用していますが、must
とshould
は同等です(What is the difference between should and must in scala testing?参照)。どちらか一方を使用すると個人的な好みに過ぎません。Specs2文字列の比較が正しく動作しない
しかし、must
作品使用して文字列、次のテストを比較するとき:
import org.specs2.mutable._
class StringEqualWithMust extends Specification {
"string comp " should {
"abc" must beEqualTo("abc")
}
}
をしかしshould
を使用して、同じテストはコンパイルされません。
import org.specs2.mutable._
class StringEqualWithShould extends Specification {
"string comp " should {
"abc" should beEqualTo("abc")
}
}
をコンパイルエラーがある:
StringEqualWithShould.scala:7: overloaded method value should with alternatives:
[error] (fs: => org.specs2.specification.core.Fragments)(implicit p1: org.specs2.control.ImplicitParameters.ImplicitParam1)org.specs2.specification.core.Fragments <and>
[error] (f: => org.specs2.specification.core.Fragment)org.specs2.specification.core.Fragment
[error] cannot be applied to (org.specs2.matcher.BeEqualTo)
[error] "abc" should beEqualTo("abc")
[error] ^
[error] one error found
なぜmust
とshould
文字列を比較すると?
私は難易度がshould
は例のブロックを開くことなく、期待を記述するために使用することができるという事実から来ているのsbt 0.13.8、スカラ座2.12.0、およびspecs2 3.8.6
のようなあなたの仕様を記述することができますmatcherを使って 'must 'と入力してください – cchantep
どのバージョンのspecs2を使用していますか?あなたは '3.8.6'で試してみることができますか? – Eric
バージョン3.8.6の場合と同じ結果 – obourgain