C# 如何使用nunit测试异步方法
如何使用nunit测试异步方法?如果您有.NET版本5的C#编译器,那么您可以使用新的async和Wait关键字。 连接以下链接: 如果可以使用闭包和匿名lambda函数,请使用线程同步 (例如) 你可以用C# 如何使用nunit测试异步方法,c#,testing,asynchronous,nunit,C#,Testing,Asynchronous,Nunit,如何使用nunit测试异步方法?如果您有.NET版本5的C#编译器,那么您可以使用新的async和Wait关键字。 连接以下链接: 如果可以使用闭包和匿名lambda函数,请使用线程同步 (例如) 你可以用 此示例适用于NUnit 3.6,但早期版本也支持延迟约束,但由于语法不同,请查找它。您遇到了什么问题?你只是测试他们;并检查他们正在做的事情。我是说,不管你需要等待什么。这只是看看你是否能让它通知你的问题,所以你不需要投票。可能是也可能不是。一个7字的问题几乎重复了5次投票,显示没有研究成果
此示例适用于NUnit 3.6,但早期版本也支持延迟约束,但由于语法不同,请查找它。您遇到了什么问题?你只是测试他们;并检查他们正在做的事情。我是说,不管你需要等待什么。这只是看看你是否能让它通知你的问题,所以你不需要投票。可能是也可能不是。一个7字的问题几乎重复了5次投票,显示没有研究成果。我嫉妒;)StackOverflow不允许在没有解释的情况下进行向下投票。请在投票时解释你自己,这样有助于我们大家学习。
[TestFixture]
class SomeTests
{
[Test]
public void AsyncTest()
{
var autoEvent = new AutoResetEvent(false); // initialize to false
var Some = new Some();
Some.AsyncFunction(e =>
{
Assert.True(e.Result);
autoEvent.Set(); // event set
});
autoEvent.WaitOne(); // wait until event set
}
}
[TestFixture]
class SomeTests
{
[Test]
public void AsyncTest()
{
var result = false;
var Some = new Some();
Some.AsyncFunction(e =>
{
result = e.Result;
});
Assert.That(() => result, Is.True.After(1).Minutes.PollEvery(500).MilliSeconds);
}
}