2

scalacheck プロパティ内で specs mathers を使用しようとしています。たとえば、次のように機能するマッチャーがあります。

x must matchMyMatcher(y)

scalacheck プロパティ内でこのマッチャーを使用する場合は、次のようにします。

import org.scalacheck._
import org.specs._
...
val prop = Prop.forAll(myGen){
    (x,y) => new matchMyMatcher(x)(y)._1
}
prop must pass

残念ながら、この場合、マッチャーに入れ、プロパティが失敗したときに必要なデバッグ情報が消去されています。小道具内でマッチャーを使用する規定の方法はありますか?

4

1 に答える 1

6

マッチャーで「must」を使用すると、適切な失敗メッセージが表示されます。

val gen = Gen.oneOf(("a", "a"), ("b", "b2"))
val function = (pair: (String, String)) => pair._1 must myMatcher(pair._2)
gen must pass(function)

次に、その場合、例は次のように失敗するはずです。

> A counter-example is '(b,b2)': 'b' is not equal to 'b2' (after 0 tries)

于 2010-10-21T11:56:40.247 に答える