【问题标题】:Using specs matchers in scalacheck properties在 scalacheck 属性中使用规范匹配器
【发布时间】:2011-04-28 11:27:30
【问题描述】:

我正在尝试在 scalacheck 属性中使用规范数学。例如,我有一个像这样工作的匹配器:

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

不幸的是,在这种情况下,我删除了我放入匹配器的调试信息,并且当属性失败时我需要这些信息。 是否有规定的方式在 props 中使用匹配器?

【问题讨论】:

    标签: scala specs scalacheck


    【解决方案1】:

    如果您对匹配器使用“必须”,您将收到正确的失败消息:

    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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 2012-09-09
      相关资源
      最近更新 更多