2016-08-24 9 views
2

あなたが非空の文字列であることを多分someCharを必要とするこのscalacheck:

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

のようなものの文脈での非空の文字列を生成するための最良の方法は何である非空の文字列を生成します。私はあなたがforAllセクションのwheneverを使うことができると知っていますが、ジェネレータのこの部分でどのように行うのでしょうか。うまくいけば、これは誰か

答えて

5

ました私のために捨てられたテストの、私は使用し終わった:

import org.scalacheck._ 

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

コンパイルするために必要なインポートを追加すると、さらに役立つことがあります。 –

0

が受け入れ答えは高い比率を引き起こしたのに役立ちます

import org.scalacheck.Arbitrary.arbitrary 

    arbitrary[String].suchThat(!_.isEmpty) 

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

のように使用することができます:私が探していた何

おかげ

関連する問題