2013-11-21 22 views
1

运行下面的测试时,将println语句输出为Gen()Gen.choose()和.oneOf()的输出

基础上ScalaCheck docs,我会一直期待的输出为:

(数字,数字)

“你好” 或 “世界”

class TestScalaCheck extends FlatSpec { 

    @author first test - https://github.com/rickynils/scalacheck/wiki/User-Guide 
    "a test" should "print out Gen.choose(1, 100)" in { 
     val myGen = for { 
      n <- Gen.choose(10,20) 
      m <- Gen.choose(2*n, 500) 
     } yield (n,m) 

     println(myGen) 

     val c = Gen.oneOf("Hello", "World") 
     println(c) 
    } 
} 
+0

谢谢你,Ash。 –

回答

5

Gen[T]是值的生成器(类型为T),并且这是myGenc abov的类型即如果您想打印出生成器可以生成的示例值(包装为选项),请尝试println(myGen.sample)println(c.sample)

+0

谢谢。文档应该包含'sample'函数吗?http://scalacheck.googlecode.com/svn/artifacts/1.9/doc/api/org/scalacheck/Gen$.html –

+1

这就是'object',看看'trait 'http://scalacheck.googlecode.com/svn/artifacts/1.9/doc/api/org/scalacheck/Gen.html – Noah

+1

请注意,ScalaCheck 1.9现在有点过时了。有关当前版本,请参阅http://www.scalacheck.org/download.html。有关当前文档的链接,请参阅http://www.scalacheck.org/documentation.html –