Как Regiester владеет генератором FsCheck на Expecto
Я построил свой тип генератора, который генерирует число, кратное трем. Я хочу использовать его в тесте с Expecto, как я могу зарегистрировать генератор и сказать моему тесту, чтобы он его использовал?
let multipleOfThree n = n * 3
type ThreeGenerator =
static member ThreeMultiple() =
Arb.generate<NonNegativeInt>
|> Gen.map (fun (NonNegativeInt n) -> multipleOfThree n)
|> Gen.filter (fun n -> n > 0)
|> Arb.fromGen
1 ответ
Решение
Я нашел себя. Для регистрации вашего генератора в Expecto
let multipleOfThree =
{ FsCheckConfig.defaultConfig with
arbitrary = [ typeof<ThreeGenerator> ] }
И можете использовать в своем тесте
testPropertyWithConfig multipleOfThree "test with your generator "
<| fun x -> Expect.equal (FunctionUnderTest x) "Expected" "Error message"