4

関数が返されることを確認しようとしていますSome(x)

testedFunc() |> should be (sameAs Some)
testedFunc() |> should be Some
testedFunc() |> should equal Some

すべてが機能しません。私はむしろ使用したくない:

match testedFunc() with
    | Some -> Pass()
    | None -> Fail()

誰かがこれを行う方法を知っていますか?

4

1 に答える 1

6

私は実際にはFsUnitを使用していませんが、このようなものは機能するはずです...

testedFunc() |> Option.isSome |> should equal true

または、OptionにはすでにIsSomeプロパティがあるため、これを行うことはできますが、大文字と小文字を区別しないでくださいOption.isSome。関数とは異なります。

testedFunc().IsSome |> should equal true

3番目のアプローチは、テストしている関数を一緒に構成して、Option.isSomeブール値を直接返す関数を取得することです。この例ではこれはあまり役に立ちませんが、さまざまな入力を使用してオプションを返す関数を数回テストする必要がある場合、このアプローチは重複コードを減らすのに役立ちます。

let testedFunc = testedFunc >> Option.isSome
testedFunc() |> should equal true
于 2012-04-09T18:29:06.643 に答える