Как Regiester владеет генератором FsCheck на Expecto - PullRequest
1 голос
/ 10 июля 2020

Я построил свой тип генератора, который генерирует числа, кратные трем. Я хочу использовать его в тесте с 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 Ответ

0 голосов
/ 13 июля 2020

Я нашел себе ответное ПО. Для регистрации вашего генератора в Expecto

    let multipleOfThree =
    { FsCheckConfig.defaultConfig with
          arbitrary = [ typeof<ThreeGenerator> ] }

И можете использовать в своем тесте

testPropertyWithConfig multipleOfThree "test with your generator "
          <| fun x -> Expect.equal (FunctionUnderTest x) "Expected" "Error message"
...