Как имитировать MediatR для выполнения теста xUnit для контроллера веб-APIC#

Место общения программистов C#
Ответить
Anonymous
 Как имитировать MediatR для выполнения теста xUnit для контроллера веб-API

Сообщение Anonymous »

Я пытаюсь настроить тест xUnit для метода контроллера. В моем контроллере я использую MediatorR для вызова обработчика. Я создал приспособление обработчика mediatorR и установил возвращаемый ожидаемый объект, но работал неправильно и получал ошибку из-за этой
ошибки
Изображение

Контроллер

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

public class MyController : ControllerBase
{

private readonly IAppAmbientState appAmbientState;
private readonly IMediator _mediator;

public MyController (
IAppAmbientState ambientState,
IMediator mediator
)
{
appAmbientState = ambientState;
_mediator = mediator;
}

[HttpGet()]
public async Task GetHandHeldByIMEI(string imei)
{
try
{
var result = await _mediator.Send(new GetHandHeldByIMEI(imei));

var returnResult = ResponseResultHelper.SuccessfulResult(result.HandHeld, result.ResultSummary);

var serializeObject = JsonConvert.SerializeObject(returnResult, Formatting.None);

return Content(serializeObject, "application/json");
}
catch (Exception e)
{

}
}
Тест

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

public class MyControllerTest
{
private readonly MyController  sut;
private readonly Mock mediatorMoq;
private readonly Mock appAmbientStateMoq;

public MyControllerTest()
{
mediatorMoq = new Mock();
appAmbientStateMoq = new Mock();

sut = new HandheldController(appAmbientStateMoq.Object, mediatorMoq.Object);
}

[Fact]
public void GetHandHeldByIMEI_ShouldReturn_HandHeldWrapperDataView()
{
//Arrange
var fixture = new Fixture();
var imei = "imeiNo";
var handHeldWrapperDataViewMoq = fixture.Create();
mediatorMoq.Setup(x => x.Send(new GetHandHeldByIMEI(imei))).Returns(handHeldWrapperDataViewMoq);

//Act
??

//Assert
??
}
}


Подробнее здесь: https://stackoverflow.com/questions/683 ... controller
Ответить

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

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

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

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

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