У меня есть следующий код:
public class MyControllerClass : ApiController
{
private readonly IManager _manager;
public MyControllerClass(IManager manager)
{
this._manager = manager;
}
pubic async Task<IHttpActionResult> GetRequest()
{
try
{
await this._manager.GetRequest();
return this.ok();
}
catch (Exception ex)
{
this.logger.Error("Error message", ex);
throw this.HTTPResponseException("Request failed message", ex);
}
}
}
public class ManagerFake : IManagerFake
{
public Task GetRequest()
{
return Task.FromResult(true);
}
}
Я использую NUnit для модульного тестирования. Для модульных тестов у меня есть класс FakeManager, зарегистрированный в моем контейнере IOC, который содержит метод GetResult () и просто возвращает Task.FromResult (true) при выполнении. Это позволяет выполнить логику в блоке try и, таким образом, обеспечить надлежащий охват кода для этого раздела.
Проблема, с которой я столкнулся, заключается в том, как создать тест с использованием того же класса FakeManager, который будет выдавать исключение, чтобы выполнялась логика блока catch и выполнялось покрытие кода, когда нет возможности сделать два уникальных вызова к методу GetRequest (), поскольку он не принимает входные параметры, которые можно использовать для различения двух разных вызовов?