gpt4 book ai didi

c# - 如何在 C# 中创建用于测试目的的模拟任务对象?

转载 作者:行者123 更新时间:2023-11-30 20:33:06 25 4
gpt4 key购买 nike

我正在尝试编写一个必须模拟返回 Task 的异步方法的单元测试.

过去,我必须模拟一个返回 Task<T> 的异步方法.为此,我可以使用 Task.FromResult<T>(t) ,但我看不到它适用于 Task . (参见此处:Stubbing Task returning method in async unit test)

我发现一个似乎有用的东西是 Task.Delay(0) ,但这似乎有点老套。

创建模拟的正确方法是什么 Task在 C# 中用于测试目的的对象?

我只需要一个 Task这表示任务已完成,但在未来的情况下,我可能需要 Task这表明引发了异常或 Task永远不会完成。

最佳答案

Task<T>Task 的子类型您可以使用 Task.FromResult,它应该可以正常工作:

Task fakeTask = Task.FromResult<object>(null);

另一种选择是使用 Task.CompletedTask Property正是为此目的而制作的:

Task completedTask = Task.CompletedTask;

关于c# - 如何在 C# 中创建用于测试目的的模拟任务对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40619009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com