У меня есть следующий код:
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. (), так как он не принимает входные параметры, которые можно было бы использовать для различения двух разных вызовов?
.GetRequest()
выдавал исключение. - person Lasse V. Karlsen   schedule 09.05.2018