Команда отправки выполняется в модульном тесте, хотя она не должна выполнятьсяC#

Место общения программистов C#
Ответить
Anonymous
 Команда отправки выполняется в модульном тесте, хотя она не должна выполняться

Сообщение Anonymous »

У меня есть этот обработчик:

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

        public async Task Handle(BaseCommand request, CancellationToken cancellationToken)
=> request.MyAction switch
{
MyAction.FirstAction => await _mediator.Send(_mapper.Map(request), cancellationToken),
MyAction.SecondAction => await _mediator.Send(_mapper.Map(request), cancellationToken),
_ => throw new ArgumentOutOfRangeException().AddData(ErrorCodes.ArgumentOutOfRange)
};
Я пытаюсь создать модульный тест, который, если MyAction.FirstAction выполняет FirstActionCommand один раз, а SecondActionCommand никогда.
Но он выполняет и то, и другое?
Это мой модульный тест:

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

[Fact]
public async void Handler_Should_Send_FirstActionCommand_Once()
{
// Arrange
var baseActionCommand = new BaseActionCommand()
{
MyAction = Action.FirstAction
};

// Act
await Sut.Handle(baseActionCommand, It.IsAny());

// Assert
_mediatorStub.Verify(x => x.Send(It.IsAny(), It.IsAny()), Times.Once);
_mediatorStub.Verify(x => x.Send(It.IsAny(), It.IsAny()), Times.Never);
}
Это сообщение:

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

Expected invocation on the mock should never have been performed, but was 1 times: x => x.Send(It.IsAny(), It.IsAny())
Есть идеи, чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/793 ... t-shouldnt
Ответить

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

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

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

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

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