Gegeben:Kann Gen [String] Andere Werte erzeugen?
import org.scalatest._
import org.scalatest.prop.Checkers
import org.scalacheck.Gen
import org.scalacheck.Gen._
object Test {
def fooOrBar: Gen[String] = oneOf("foo", "bar")
}
class Test extends FunSuite with Checkers {
import Test._
test("generated String should equal 'foo' or 'bar'") {
check(org.scalacheck.Prop.forAll(fooOrBar) { x: String =>
x == "foo" || x == "bar"
})
}
}
Lauf sbt test
Renditen, die alle Tests erfolgreich waren.
den obigen Code angegeben, ist es möglich, für x: String
, das heißt die String
von fooOrBar
, vom Typ Gen[String]
, einen anderen Wert als foo
oder bar
zu entsprechen?
In meinem Real-World-Code sehe ich Werte für meine x: String
, die sich von dem Gen[String]
Argument zu org.scalacheck.Prop.forAll
unterscheiden.
Deshalb frage ich, ob es für das obige Beispiel möglich ist, ob x: String
nicht gleich foo
oder bar
sein kann.
I 'benötigt verwenden sehen org.scalacheck.Prop.forAllNoShrink' –
Einschrumpfen nicht gut mit Generatoren in der Tat spielen. Dasselbe gilt, wenn Sie Filterbedingungen 'thatThat' haben. – Eric
@Eric - Care, um eine Antwort für Kredit zu buchen? Ich fand, dass "forAllNoShrink" für mich funktioniert hat, aber ich bin mir nicht ganz sicher, was "Schrumpfen" beinhaltet. –