scalacheck:生成一个非空字符串

scalacheck:生成一个非空字符串,scala,scalacheck,Scala,Scalacheck,在这样的上下文中,生成非空字符串的最佳方法是什么 private def createIndexFn() = { for{ someChar <- Gen.alphaString aNumber <- Gen.choose(1,100) //... } yield { MyThing(AnotherType(someChar.toString), Som

在这样的上下文中,生成非空字符串的最佳方法是什么

  private def createIndexFn() = {
      for{
        someChar <-  Gen.alphaString
        aNumber <- Gen.choose(1,100)
        //...
       }       
       yield { 
           MyThing(AnotherType(someChar.toString), SomeOtherType(aNumber), aNumber)
   }
 }
private def createIndexFn()={
为了{

我要找的是:

import org.scalacheck.Arbitrary.arbitrary

arbitrary[String].suchThat(!_.isEmpty)
可以像这样使用

for {
  name <- arbitrary[String].suchThat(!_.isEmpty)
  age  <- Gen.choose(0, 100)
} yield Person(name, age)
用于{

name被接受的答案导致我放弃测试的比例很高,我最终使用了:

import org.scalacheck._

Arbitrary(Gen.nonEmptyListOf[Char](Arbitrary.arbChar.arbitrary)).map(_.mkString))

如果您添加使其编译所需的导入,可能会有更大帮助;)