Como posso afirmar que um método async C # lança uma exceção em um teste de unidade? [duplicado]

Duplicata Possível:
Como faço para testar um método assíncrono com o NUnit, eventualmente com outro framework?

O que eu gostaria de saber é como posso afirmar que um método assíncrono gera uma exceção, em um teste de unidade C #? Eu sou capaz de escrever testes unitários assíncronos comMicrosoft.VisualStudio.TestTools.UnitTesting no Visual Studio 2012, mas não descobri como testar exceções. Eu sei que xUnit.net também suporta métodos de teste assíncronos, embora eu não tenha testado essa estrutura ainda.

Para um exemplo do que quero dizer, o código a seguir define o sistema em teste:

using System;
using System.Threading.Tasks;

public class AsyncClass
{
    public AsyncClass() { }

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

Este trecho de código define um testeTestGetIntAsync paraAsyncClass.GetIntAsync. É aqui que eu preciso de informações sobre como realizar a afirmação de queGetIntAsync lança uma exceção:

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

Sinta-se à vontade para empregar alguma outra estrutura de teste de unidade relevante do que a do Visual Studio, como xUnit.net, se necessário, ou você argumentaria que é uma opção melhor.

questionAnswers(4)

yourAnswerToTheQuestion