У меня есть базовый Api-контроллер, определенный следующим образом:
[ApiController]
public abstract class BaseController : ControllerBase
{
private IMediator _mediator;
protected IMediator Mediator => _mediator ??= HttpContext.RequestServices.GetService<IMediator>();
}
Auth-контроллер, полученный из BaseController
public class AuthController : BaseController
{
[HttpPost(ApiRoutes.Auth.Register)]
public async Task<IActionResult> Register(UserRegistrationRequest request)
{
var response = await Mediator.Send(new UserRegistrationCommand(request.Email, request.Password));
return Ok(response);
}
}
Каким образом следует имитировать службу IMediator в модульных тестах? Когда сервисы вводились с использованием конструктора DI, я только что передавал имитированные сервисы конструктору в тестах, но в этом сценарии я не уверен, что имитировать, возможно, HttpContext?