0

我决定使用Canopy框架来测试我的 UI。

大多数示例包括内置的断言框架Expecto。这两个都是不错的选择,但我在项目的其他任何地方都使用 xUnit,并且现在想要统一。

对于 xUnit,我只找到了这个示例,但它只包含两个非常基本的测试,而我需要在所有测试之前运行通用代码之类的东西。canopy + xUnit的惯用方式是什么?

4

1 回答 1

0

xUnit 具有类固定装置这里是一个如何将其引入 F# 代码的示例。

将其与树冠场景相结合,以下是它的外观示例:

open canopy.classic
open canopy.types
open System
open Xunit

let private openApp() =
    ...

type Fixture() =
    do
        start ChromeHeadless

    interface IDisposable with 
        member _.Dispose() =
            quit()

type Tests() = 
    interface IClassFixture<Fixture>

    [<Fact>]
    member _.``Soundcheck - Server is online``() =
        openApp()
        
    [<Fact>]
    member _.``Button1 is enabled``() =
        openApp()

        let button = element "#button1"

        Assert.True button.Enabled

    [<Fact>]
    member _.``Button2 is disabled``() =
        openApp()

        let button = element "#button2"

        Assert.False button.Enabled

于 2020-10-29T08:59:24.993 回答