c# - 异步测试在 Nunit 2.6.2 中挂起

标签 c# .net c#-4.0 nunit nunit-console

我有下面这个简单的测试方法。

[Test]
        public async Task OneSimpleTest1()
        {
            var eightBall = new EightBall();
            var answer = await eightBall.WillIWin();

            Assert.That(answer, Is.True);
        }

测试类如下所示

public class EightBall
    {
        public Task<bool> WillIWin()
        {
            return new Task<bool>(() => true);
        }
    }

我使用以下命令在 Nunit 2.6.2 中运行测试。

nunit-console.exe八球.dll/framework:net-4.5

但是,测试似乎没有返回并永远挂起。是否有一种特殊的方法可以使用 Nunit 2.6.2 运行异步测试。我认为使用 Nunit 2.6.2 支持异步

最佳答案

return new Task<bool>(() => true);创建任务但不启动它。更好用return Task.Run(()=> true);return Task.FromResult<bool>(true)

您还可以将代码更改为

public Task<bool> WillIWin()
{
    var task = new Task<bool>(() => true);
    task.Start();
    return task;
}

让它发挥作用

关于c# - 异步测试在 Nunit 2.6.2 中挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19164396/

相关文章:

c# - 使用货币的最佳实践

c# - Azure服务总线死信队列消息无法在死信中停留更长时间

C#,实现子类定义的具体变量的抽象父类(super class)?

.net - 发布 .NET 项目时如何解决“不支持 'Could not open Source file: The given path' s 格式”错误?

c# - 删除查询中的重复代码

c# - 将列表转换为字符串列表

c# - 从 MVVM 属性调用异步方法

c# - 如何本地化数据库驱动的网站

c# - 找不到 RedirectToLocal

c# - RegEx 和不同框架版本的内存使用和已知问题