Как имитировать службу, внедренную HttpContext.RequestServices.GetService<> в производный контроллер?C#

Место общения программистов C#
Ответить
Anonymous
 Как имитировать службу, внедренную HttpContext.RequestServices.GetService<> в производный контроллер?

Сообщение Anonymous »

У меня есть базовый контроллер API, определенный следующим образом

Код: Выделить всё

[ApiController]
public abstract class BaseController : ControllerBase
{
private IMediator _mediator;

protected IMediator Mediator => _mediator ??= HttpContext.RequestServices.GetService();
}
Контроллер аутентификации, производный от BaseController

Код: Выделить всё

public class AuthController : BaseController
{
[HttpPost(ApiRoutes.Auth.Register)]
public async Task Register(UserRegistrationRequest request)
{
var response = await Mediator.Send(new UserRegistrationCommand(request.Email, request.Password));

return Ok(response);
}
}
Как следует имитировать службу IMediator в модульных тестах? Когда сервисы были внедрены с использованием конструктора DI, я только что передал имитируемые сервисы конструктору в тестах, но в этом сценарии я не уверен, что имитировать, возможно, HttpContext?

Подробнее здесь: https://stackoverflow.com/questions/613 ... ce-in-deri
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»