0

UI をテストするためにcanopyフレームワークを使用することにしました。

ほとんどの例には、組み込みのアサーション フレームワークまたはExpectoが含まれています。どちらも良い選択ですが、私はプロジェクトの他の場所で xUnit を使用しており、今のところ統一したいと考えています。

xUnit については、この例しか見つかりませんでしたが、非常に基本的なテストが 2 つしか含まれていませんが、すべてのテストの前に共通コードなどを実行する必要があります。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 に答える