FsCheck测试更改用于测试的值的范围

Phi*_*ohn 3 f# fscheck

我的代码在使用FsCheck时自动测试-99到99之间的值.

Check.Quick test
Run Code Online (Sandbox Code Playgroud)

我的测试函数采用整数值.

我想测试使用1到4999之间的值.

Mar*_*ann 5

您可以Gen.elements结合使用Prop.forAll:

let n = Gen.elements [-99..99] |> Arb.fromGen
let prop = Prop.forAll n (fun number -> 
    // Test goes here - e.g.:
    Assert.InRange(number, -99, 99))
prop.QuickCheck()
Run Code Online (Sandbox Code Playgroud)

Gen.elements获取一系列有效值并从该序列创建一个统一的生成器.Prop.forAll使用该自定义生成器定义属性.

您可以将它与FsCheck的xUnit.net胶水库结合使用,这是我首选的方法:

[<Property>]
let ``Number is between -99 and 99`` () =
    let n = Gen.elements [-99..99] |> Arb.fromGen
    Prop.forAll n (fun number -> 
        // Test goes here - e.g.:
        Assert.InRange(number, -99, 99))
Run Code Online (Sandbox Code Playgroud)