如何使用任务返回类型测试方法



我正在尝试测试一种签名的方法

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个结果?

如果我尝试在整数的通用列表中尝试的策略,我会收到错误:无法将方法组计数转换为非贵族类型int。

事先感谢您的任何帮助。

假设单位测试框架是 async -ware(如果您正在进行异步单位测试,则希望它是:)),那么您应该只能修复编译器错误:

[TestMethod] 
public async Task MethodToBeTestedSuccess()
{
    List<int> results = await MethodToBeTested()
    ......
}

换句话说,给定显示的签名,则如果您 await方法调用,则结果类型为 List<int>,而不是 Task<List<int>>,并且您应该声明变量以相应地接收结果。

最新更新