Моя команда только начинает использовать MassTransit, и мы пытаемся выяснить, как работает модульное тестирование реализаций IConsumer.Документация MassTransit является неполной, и все примеры, которые я нашел, используют NUnit.Мы пытаемся использовать XUnit с Moq для нашего модульного тестирования.
Я знаю, что нам нужно настроить один экземпляр тестового жгута MassTransit, который в NUnit выполняется с OneTimeSetup, и повторить, что мы должны использовать IClassFixture в XUnit.Я пытаюсь заставить его работать с тестовым набором.
Я видел пример Криса Паттерсона ConsumerTest_Specs.cs на MassTransit GitHub, но мне трудно перевести его на работу в XUnit.и Moq.https://github.com/MassTransit/MassTransit/blob/master/src/MassTransit.Tests/Testing/ConsumerTest_Specs.cs
Я пытаюсь протестировать очень простого потребителя для начала.Все, что он делает, это получает сообщение, а затем делает звонок в хранилище.Я хочу написать тест XUnit, который проверяет хранилище и проверяет, был ли вызван метод хранилища.
У кого-нибудь есть примеры, как сделать что-то подобное?
public class NewVMRequestRejectedConsumer : IConsumer<INewVMRequestRejected>
{
private readonly INewVMRequestRepository _newVMRequestRepository;
public NewVMRequestRejectedConsumer(INewVMRequestRepository newVMRequestRepository)
{
_newVMRequestRepository = newVMRequestRepository;
}
public Task Consume(ConsumeContext<INewVMRequestRejected> context)
{
_newVMRequestRepository.AddReasonForRejection(context.Message.RequestId, context.Message.Reason);
return Task.CompletedTask;
}
}