如何查看scalacheck生成的值?
我正在使用scalatest和scalacheck进行一些基于属性的测试。我对scala和这些库都是新手,所以假设这段代码没有实际那么难看 我有一个这样的测试:如何查看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
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可能有一个选项,但这也应该有效。谢谢如果您经常这样做,您可以很容易地创建一个帮助器或宏来废弃这个模板中的样板文件。