Dan*_*don 2 c# unit-testing asynchronous mocking task
我正在尝试编写一个必须模拟返回的异步方法的单元测试Task
.
在过去,我不得不模拟一个返回的异步方法Task<T>
.为此,我可以使用Task.FromResult<T>(t)
,但我不认为它适用Task
.(参见此处:异步单元测试中的Stubbing Task返回方法)
我发现Task.Delay(0)
似乎有用的一件事是,但这似乎相当骇人.
Task
在C#中为测试目的创建模拟对象的正确方法是什么?
我只需要一个Task
表明任务已完成的,但在将来的情况下,我可能需要一个Task
表明引发了异常或Task
永远不会完成的异常.
由于Task<T>
是一个子类型,Task
你可以使用Task.FromResult,它应该工作得很好:
Task fakeTask = Task.FromResult<object>(null);
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用Task.CompletedTask属性,它是为此目的而制作的:
Task completedTask = Task.CompletedTask;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1755 次 |
最近记录: |