を拡張する ScalaTest 2 クラスがGeneratorDrivenPropertyChecks
あり、間接的に and も拡張FeatureSpec
しMatchers
ます (これらの 2 つのクラスを拡張する私が書いたトレイトを介して)。その中に次のようなコードがあります。
forAll(mySequence) { myItem =>
myItem.applicationID should be (foo.applicationID)
}
scalac が次のように言うため、これはコンパイルに失敗します。
[error] APISpec.scala:253: value applicationID is not a member of Seq[com.company.Item]
[error] myItem.applicationID should be (foo.applicationID)
[error] ^
少なくとも Eclipse Scala IDE によれば、コンパイラは "forAll" をこのメソッドを意味するものとして解決していることがわかりGeneratorDrivenpropertyChecks
ます。
/**
* Performs a property check by applying the specified property check function to arguments
* supplied by the specified generators.
*
* <p>
* Here's an example:
* </p>
*
* <pre class="stHighlight">
* import org.scalacheck.Gen
*
* // Define your own string generator:
* val famousLastWords = for {
* s <- Gen.oneOf("the", "program", "compiles", "therefore", "it", "should", "work")
* } yield s
*
* forAll (famousLastWords) { (a: String) =>
* a.length should equal ((a).length)
* }
* </pre>
*
* @param fun the property check function to apply to the generated arguments
*/
def forAll[A](genA: Gen[A], configParams: PropertyCheckConfigParam*)(fun: (A) => Unit)
(implicit
config: PropertyCheckConfig,
shrA: Shrink[A]
) {
// body omitted
}
forAll
ここで使用したい方法ではありません。
これは ScalaTest のバグですか (つまり、2 つのメソッドに両方の名前を付けるべきではないということforAll
です)?
そして、正しいメソッドをどのように呼び出す必要がありますか?