我有一个ASP.NET Web API应用程序,带有一个ApiController,具有异步方法,返回Task<>个对象,并用async关键字标记.

public class MyApiController : ApiController
{
    public async Task<MyData> GetDataById(string id)
    {
        ...
    }
}

如何为ApicController的异步方法编写NUnit测试?如果我需要使用另一个测试框架,我也愿意这样做.我是个新手.NET单元测试,所以我对学习最佳实践感兴趣.

推荐答案

在我看来,NUnit 2.6中似乎不支持测试返回任务的异步方法.我现在看到的最佳 Select 是使用VisualStudio自己的单元测试框架或xUnit.净as both support asynchronous tests.

使用Visual Studio UnitTesting框架,我可以编写如下异步测试:

using Microsoft.VisualStudio.TestTools.UnitTesting;

[TestClass]
public class TestAsyncMethods
{
    [TestMethod]
    public async Task TestGetBinBuildById()
    {
         ...
         var rslt = await obj.GetAsync();
         Assert.AreEqual(rslt, expected);
    }
}

.net相关问答推荐

使用 PowerShell 从文件夹中获取文件名的最快\最好的方法是什么?

判断内部异常的最佳方法?

什么是提升运算符?

process.WaitForExit() 异步

标签从右向左增长

C#6.0 字符串插值本地化

如何在任务栏顶部全屏显示 Windows 窗体?

如何让 DateTimePicker 显示一个空字符串?

如何使用反射在 .NET 中调用重载方法

在 ToString() 之前判断 null

公钥令牌的作用是什么?

当程序员说针对接口而不是对象的代码时,他们是什么意思?

什么是 C# 中的自动属性,它们的用途是什么?

如何确定字符串是 C# 中的有效 IPv4 还是 IPv6 地址?

使用 XmlDocument 读取 XML 属性

从 OpenFileDialog 路径/文件名中提取路径

如何在 Dapper.Net 中编写一对多查询?

如何从 HashSet 中检索实际项目?

如何判断uri字符串是否有效

如何重新启动我的 C# WinForm 应用程序?