Как я могу утверждать, что асинхронный метод 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, если это необходимо, или вы могли бы утверждать, что это лучший вариант.