У меня есть генератор, который создает очень сложный объект.Я не могу создать этот объект с помощью чего-то вроде
val myGen = for{
a <- Gen.choose(-10,10)
...
} yield new MyClass(a,b,c,...)
Я попытался создать собственный генератор, подобный этому
val myComplexGen :Gen[ComplexObject] = {
...
val myTempVariable = Gen.choose(-10,10)
val otherTempVal = Gen.choose(100,2000)
new MyComplexObject(myTempVariable,otherTempVal,...)
}
, а затем
test("myTest") {
forAll(myComplexGen){ complexObj =>
... // Here, complexObj.myTempVariable is always the same through all the iterations
}
}
Пока это работает, генерируемые значения всегда одинаковы.Внутренний Gen.choose
дает всегда одно и то же значение.
Можно ли как-нибудь написать пользовательский Gen
со своей собственной логикой и использовать внутренний Gen.choose
внутри, который был бы случайным?