Multiple TestCaseSources (#26)

This commit is contained in:
Patrick Stevens
2024-06-05 17:27:17 +01:00
committed by GitHub
parent 298dca94ea
commit f6e907395c
4 changed files with 91 additions and 80 deletions

View File

@@ -9,6 +9,27 @@ module TestCaseData =
let dataSourceRaw = [ 3, "hi", [| 4.0 |] ; -10, "bye", null ]
let dataSource = dataSourceRaw |> List.map TestCaseData
[<TestCaseSource(nameof dataSource)>]
let ``Consume test data`` (i : int, s : string, arr : float[]) =
lock testCasesSeen (fun () -> testCasesSeen.Add (i, s, arr))
let multipleSources = ResizeArray ()
let dataSource2Raw = [ 5, "egg", [| -1.3 ; 4.5 |] ; 100, "mycroft", [||] ]
let dataSource2 = dataSource2Raw |> List.map TestCaseData
[<TestCaseSource(nameof dataSource)>]
[<TestCaseSource(nameof dataSource2)>]
let ``Consume test data from multiple sources`` (i : int, s : string, arr : float[]) =
lock multipleSources (fun () -> multipleSources.Add (i, s, arr))
let optional = [ Some "hi" ; None ] |> List.map TestCaseData
[<TestCaseSource(nameof optional)>]
let ``Consume options`` (s : string option) : unit = s |> shouldEqual s
[<OneTimeTearDown>]
let tearDown () =
testCasesSeen
@@ -16,13 +37,7 @@ module TestCaseData =
|> List.sortBy (fun (a, _, _) -> a)
|> shouldEqual (dataSourceRaw |> List.sortBy (fun (a, _, _) -> a))
let dataSource = dataSourceRaw |> List.map TestCaseData
[<TestCaseSource(nameof dataSource)>]
let ``Consume test data`` (i : int, s : string, arr : float[]) =
lock testCasesSeen (fun () -> testCasesSeen.Add (i, s, arr))
let optional = [ Some "hi" ; None ] |> List.map TestCaseData
[<TestCaseSource(nameof optional)>]
let ``Consume options`` (s : string option) : unit = s |> shouldEqual s
multipleSources
|> Seq.toList
|> List.sortBy (fun (a, _, _) -> a)
|> shouldEqual ((dataSourceRaw @ dataSource2Raw) |> List.sortBy (fun (a, _, _) -> a))