如何测试具有 Task return 类型的方法?
How can I test a method with a Task return type?
我正在尝试测试一种签名形式为
的方法
public async Task<List<int>> MethodToBeTested()
我写了一个单元测试如下
[TestMethod]
public async Task MethodToBeTestedSuccess()
{
Task<List<int>> results = await MethodToBeTested()
......
}
如果方法的 return 类型是一个通用的整数列表,我会执行以下步骤来测试输出
List<int> results = MethodToBeTested();
int numberOfResults = results.Count;
Assert.AreEqual(numberOfResults,2300);
因此我的问题是:如何测试 return 类型包含在任务中的异步方法,并验证是否已 returned 了 2300 个结果?
如果我在整数的通用列表上尝试我尝试过的策略,我会收到错误消息:无法将方法组 Count 转换为非委托类型 int。
在此先感谢您的帮助。
假设单元测试框架是 async
-aware(如果您正在进行异步单元测试,希望它是 :)),那么您应该能够修复您的编译器错误:
[TestMethod]
public async Task MethodToBeTestedSuccess()
{
List<int> results = await MethodToBeTested()
......
}
换句话说,给定你显示的签名,那么如果你await
方法调用,结果类型是List<int>
,而不是Task<List<int>>
,你应该声明变量以相应地接收结果。
我正在尝试测试一种签名形式为
的方法public async Task<List<int>> MethodToBeTested()
我写了一个单元测试如下
[TestMethod]
public async Task MethodToBeTestedSuccess()
{
Task<List<int>> results = await MethodToBeTested()
......
}
如果方法的 return 类型是一个通用的整数列表,我会执行以下步骤来测试输出
List<int> results = MethodToBeTested();
int numberOfResults = results.Count;
Assert.AreEqual(numberOfResults,2300);
因此我的问题是:如何测试 return 类型包含在任务中的异步方法,并验证是否已 returned 了 2300 个结果?
如果我在整数的通用列表上尝试我尝试过的策略,我会收到错误消息:无法将方法组 Count 转换为非委托类型 int。
在此先感谢您的帮助。
假设单元测试框架是 async
-aware(如果您正在进行异步单元测试,希望它是 :)),那么您应该能够修复您的编译器错误:
[TestMethod]
public async Task MethodToBeTestedSuccess()
{
List<int> results = await MethodToBeTested()
......
}
换句话说,给定你显示的签名,那么如果你await
方法调用,结果类型是List<int>
,而不是Task<List<int>>
,你应该声明变量以相应地接收结果。