我正在尝试测试其签名格式为
的方法public async Task<List<int>> MethodToBeTested()
我已经编写了一个单元测试如下
[TestMethod]
public async Task MethodToBeTestedSuccess()
{
Task<List<int>> results = await MethodToBeTested()
......
}
如果方法的返回类型是一个通用的整数列表,我会执行以下步骤来测试输出
List<int> results = MethodToBeTested();
int numberOfResults = results.Count;
Assert.AreEqual(numberOfResults,2300);
因此,我的问题是:如何测试异步方法,其返回类型包含在任务中,并验证是否已返回2300个结果?
如果我尝试在整数通用列表上尝试的策略,我会得到错误:无法将方法组Count转换为非委托类型int。
提前感谢您的帮助。
答案 0 :(得分:3)
假设单元测试框架是async
- 知道(如果你正在进行异步单元测试,希望它是:)),那么你应该能够修复你的编译器错误:
[TestMethod]
public async Task MethodToBeTestedSuccess()
{
List<int> results = await MethodToBeTested()
......
}
换句话说,根据您显示的签名,如果您await
方法调用,结果类型为List<int>
,而不是Task<List<int>>
,您应该将变量声明为相应地收到结果。