У меня есть функция, которая должна получить два фактических параметра для тестирования. Оба значения должны создаваться экземплярами Arbitrary, поскольку они должны иметь определенную форму, которая не может быть полностью произвольной.
Итак, я создаю следующий код.
let updating (x:SomeType) (y:SomeOtherType) =
let result = update x y
result.someProp = x.someProp
&& result.otherProp = y.otherProp
let arbSomeType =
Arb.generate<SomeType>
|> Gen.filter fun x -> x.checkSomeStuff
|> Arb.fromGen
let arbSomeType =
Arb.generate<SomeOtherType>
|> Gen.filter fun x -> x.checkPropertiesOfThis
|> Arb.fromGen
Но как мне теперь объединить эти 2 произвольных экземпляра, чтобы они совпадали с сигнатурой тестового метода?
//let prop = Prop.forAll arbSomeType + arbSomeType updating
Check.QuickThrowOnFailure prop