如何在ms单元测试中测试异步方法,导致单元测试成功或失败
[<TestClass>]
type TestRequestDataClass () =
[<TestMethod>]
member this.TestRequestDataAsync() = async {
let! result = requestDataAsync()
match result with
| Ok result -> Assert.IsTrue(true)
| Error error -> Debug.WriteLine(error)
Assert.IsTrue(false)
}
答案 0 :(得分:2)
我没有MS Test来尝试这个,但如果你需要生成一个返回非泛型Task
的方法(而不是泛型Task<T>
),那么你可以定义以下内容助手:
open System.Threading.Tasks
let startAsActionTask f =
Async.StartAsTask f :> Task
Async.StartAsTask
总是创建一个通用Task<T>
,但除此之外,它与此帮助器几乎相同。然后你可以按如下方式使用帮助器:
[<TestMethod>]
member this.TestRequestDataAsync() = startAsActionTask <| async {
let! result = requestDataAsync()
match result with
| Ok result -> Assert.IsTrue(true)
| Error error -> Debug.WriteLine(error)
Assert.IsTrue(false)
}