Как проверить асинхронные методы с помощью nunit - PullRequest
6 голосов
/ 12 марта 2010

Как проверить асинхронные методы с помощью nunit?

Ответы [ 2 ]

2 голосов
/ 29 ноября 2013

Если у вас есть .NET версия 5 компилятора C #, вы можете использовать новые ключевые слова async и await.прикрепите ссылку: http://simoneb.github.io/blog/2013/01/19/async-support-in-nunit/

Если вы можете использовать замыкание с анонимной лямбда-функцией, используя синхронизацию потоков.

например)

[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
    }

}
0 голосов
/ 11 мая 2017

Вы можете использовать NUnits Delayed Constraint

[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);
    }

}

Этот пример для NUnit 3.6, но более ранние версии также поддерживают отложенное ограничение, но ищите его, так как синтаксис другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...