如何查看scalacheck生成的值?

如何查看scalacheck生成的值?,scala,scalatest,scalacheck,Scala,Scalatest,Scalacheck,我正在使用scalatest和scalacheck进行一些基于属性的测试。我对scala和这些库都是新手,所以假设这段代码没有实际那么难看 我有一个这样的测试: class MyTests extends FlatSpec with Checkers { "My Class" should "Do something interesting" in { check((e1 : String, e2 : String, e3 : String) => doInter

我正在使用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
  }
}
scala -cp "../lib/scalatest.jar:../lib/scalacheck.jar:." org.scalatest.run MyTests
如何查看scalacheck生成的值?我当前运行的测试如下所示:

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
  }
}
scala -cp "../lib/scalatest.jar:../lib/scalacheck.jar:." org.scalatest.run MyTests
但我得到的只是通过/失败输出。

怎么样:

"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)

我认为scalacheck可能有一个选项,但这也应该有效。谢谢如果您经常这样做,您可以很容易地创建一个帮助器或宏来废弃这个模板中的样板文件。