Как я могу утверждать, что асинхронный метод C # выдает исключение в модульном тесте? [Дубликат]

Possible Duplicate:
How do I test an async method with NUnit, eventually with another framework?

Я хотел бы знать, как я могу утверждать, что асинхронный метод вызывает исключение в модульном тесте C #? Я могу писать асинхронные модульные тесты сMicrosoft.VisualStudio.TestTools.UnitTesting в Visual Studio 2012, но не выяснили, как тестировать исключения. Я знаю, что xUnit.net также поддерживает асинхронные методы тестирования, хотя я еще не пробовал эту платформу.

Для примера того, что я имею в виду, следующий код определяет тестируемую систему:

using System;
using System.Threading.Tasks;

public class AsyncClass
{
    public AsyncClass() { }

    public Task<int> GetIntAsync()
    {
        throw new NotImplementedException();
    }
}    

Этот фрагмент кода определяет тестTestGetIntAsync заAsyncClass.GetIntAsync, Это где мне нужно мнение о том, как выполнить утверждение, чтоGetIntAsync выдает исключение:

using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Threading.Tasks;

[TestClass]
public class TestAsyncClass
{
    [TestMethod]
    public async Task TestGetIntAsync()
    {
        var obj = new AsyncClass();
        // How do I assert that an exception is thrown?
        var rslt = await obj.GetIntAsync();
    }
}

Не стесняйтесь использовать некоторые другие соответствующие модульные тестовые среды, чем Visual Studio, такие как xUnit.net, если это необходимо, или вы могли бы утверждать, что это лучший вариант.

Ответы на вопрос(4)

Ваш ответ на вопрос