Saya telah membangun tipe generator saya yang menghasilkan kelipatan tiga. Saya ingin menggunakannya dalam tes dengan Expecto. Bagaimana cara mendaftarkan generator ini dan memberi tahu pengujian saya untuk menggunakannya?

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
ntonjeta 10 Juli 2020, 15:53

1 menjawab

Jawaban Terbaik

Saya telah menemukan jawaban untuk diri saya sendiri. Untuk mendaftarkan generator Anda di Expecto

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

Dan dapat digunakan dalam pengujian Anda

testPropertyWithConfig multipleOfThree "test with your generator "
          <| fun x -> Expect.equal (FunctionUnderTest x) "Expected" "Error message"
0
ntonjeta 13 Juli 2020, 08:42