F#でいくつかのNUnitテストを作成しようとしていますが、関数をに渡すのに問題がありThrowsConstraint
ます。蒸留された(非)作業サンプルは以下のとおりです。
open System.IO
open NUnit.Framework
[<TestFixture>]
module Example =
[<Test>]
let foo() =
let f = fun () -> File.GetAttributes("non-existing.file")
Assert.That(f, Throws.TypeOf<FileNotFoundException>())
これは問題なくコンパイルされますが、NUnitテストランナーから次の情報が得られます。
FsTest.Tests.Example.foo:
System.ArgumentException : The actual value must be a TestDelegate but was f@11
Parameter name: actual
属性を使用して問題を回避することはできExpectedException
ますが、私の質問は、この状況でF#関数を使用する正しい方法は何ですか?