1

我正在使用 scalatest 和 scalacheck 进行一些基于属性的测试。我对 scala 和这些库都是新手,所以假装这段代码不像实际那样难看。

我有一个这样的测试:

class MyTests extends FlatSpec with Checkers {

  "My Class" should "Do something interesting" in {
    check((e1 : String, e2 : String, e3 : String) =>
      doInterestingThing(e1, e2, e3))
   }

  def doInterestingThing(e1: String, e2: String, e3: String) : Boolean = {
    val myClass = new MyClass[String]
    val passed = myClass.Foo(e1, e2, e3)
    passed
  }
}

如何查看 scalacheck 生成的值?我目前正在运行这样的测试:

scala -cp "../lib/scalatest.jar:../lib/scalacheck.jar:." org.scalatest.run MyTests

但我得到的只是通过/失败输出。

4

1 回答 1

1

怎么样:

"My Class" should "Do something interesting" in {
  check { (e1: String, e2: String, e3: String) =>
    println(s"doInterestingThing($e1, $e2, $e3)")
    doInterestingThing(e1, e2, e3)
  }
}

作为旁注,原始代码中的这一行:

check((e1: String, e2: String, e3: String) => doInterestingThing(e1, e2, e3))

可以改写为:

check(doInterestingThing)
于 2014-11-01T22:37:25.753 回答