В настоящее время я пытаюсь написать модульный тест для метода действия, который возвращает один элемент. Ниже тест, который я пытаюсь написать. Я не слишком уверен, как написать модульный тест, и у меня есть две проблемы. Как смоделировать настройку для отправки вызова от посредника, и мне также нужно смоделировать DataContext aswell.
[Fact]
public async Task Activity_SendsQueryWithCorrectGUIDId()
{
var id = Guid.Parse("c8b08528-5200-40d8-8d18-abda8cb5110c");
var mock = new Mock<IMediator>();
var sut = new ActivitiesController(mock.Object
await sut.Details(id);
}
Это вызываемый контроллер.
public class ActivitiesController:ControllerBase
{
private readonly IMediator _mediator;
public ActivitiesController(IMediator mediator)
{
_mediator = mediator;
}
[HttpGet("{id}")]
public async Task<ActionResult<Activity>> Details(Guid id)
{
return await _mediator.Send(new Details.Query { Id = id });
}
}
This класс MediatR, который получает вызов;
public class Details
{
public class Query : IRequest<Activity>
{
public Guid Id { get; set; }
}
public class Handler : IRequestHandler<Query, Activity>
{
private readonly DataContext _context;
public Handler(DataContext context)
{
_context = context;
}
public async Task<Activity> Handle(Query request, CancellationToken cancellation)
{
var activity = await _context.Activities.FindAsync(request.Id);
return activity;
}
}
}