相关疑难解决方法(0)

如何使用FsCheck实现多个参数生成?

如何使用FsCheck实现多个参数生成?

我实现了以下内容以支持多个参数生成:

// Setup
let pieces =    Arb.generate<Piece> |> Gen.filter (isKing >> not)
                                    |> Arb.fromGen  

let positionsList = Arb.generate<Space list> |> Arb.fromGen
Run Code Online (Sandbox Code Playgroud)

然后我使用这些参数来测试一个函数的行为,该函数负责为给定的检查器生成移动选项:

// Test
Prop.forAll pieces <| fun piece ->
    Prop.forAll positionsList <| fun positionsItem ->

        positionsItem |> optionsFor piece 
                      |> List.length <= 2
Run Code Online (Sandbox Code Playgroud)

在管理多个生成的参数类型时,是否将Prop.forAll表达式嵌套为正确的技术?

是否有替代方法为被测函数生成多个参数?

这是整个功能:

open FsCheck
open FsCheck.Xunit

[<Property(QuietOnSuccess = true)>]
let ``options for soldier can never exceed 2`` () =

    // Setup
    let pieces =    Arb.generate<Piece> |> Gen.filter (isKing >> not)
                                        |> Arb.fromGen  

    let positionsList …
Run Code Online (Sandbox Code Playgroud)

f# fscheck fsunit

3
推荐指数
1
解决办法
248
查看次数

标签 统计

f# ×1

fscheck ×1

fsunit ×1