使用FsCheck时,我的代码会自动测试-99到99之间的值。
Check.Quick test
我的测试函数采用整数值。
我想使用1到4999之间的值进行测试。
答案 0 :(得分: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()
Gen.elements
获取一系列有效值,并从该序列创建一个统一的生成器。 Prop.forAll
使用该自定义生成器定义属性。
你可以combine it with FsCheck's Glue Library for 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))
答案 1 :(得分:0)
默认情况下,FsCheck生成1到100之间的整数。您可以通过向Check提供Config对象来更改此值。
let config = {
Config.Quick with
EndSize = 4999
}
Check.One(config,test)
当所有测试都通过时,EndSize指示用于上次测试的大小。大小在StartSize之间线性增加,如果您希望在从1以外的某个值开始的范围内生成测试数据,也可以设置EndSize。请参阅https://github.com/fscheck/FsCheck/blob/master/src/FsCheck/Runner.fs
中type Config
的实施