我有下面这个简单的测试方法。
[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/