Модульный тест с макетом объекта ответаC#

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

Сообщение Anonymous »

У меня есть услуга; эта служба использует объект Response (IResponse), это обработчик службы:

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

    [LogRequestDto]
[LogResponseDto]
[RequiresAnyRole(Roles.EventWrite, Roles.EventAdmin)]
public NewEventResponse Post(NewEvent request)
{
long eventId;
try
{
......
}
catch (Exception)
{
throw new HttpError(HttpStatusCode.InternalServerError,
HttpErrorCodes.InternalServerError.ToString(), HttpErrorMessages.InternalServerError);
}

if (Response == null)
throw new HttpError(HttpStatusCode.BadRequest,
HttpErrorCodes.NotGenerateResponse.ToString(), HttpErrorMessages.NotGenerateResponse);

.......

Response.StatusCode = (int)HttpStatusCode.Created;

return new NewEventResponse
{
EventId = eventId,
.......
};
}
а это мой модульный тест:

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

[Test, Order(1)]
public void NewEventTest_Successful()
{
// Arrange
var request = new NewEvent
{
...        };

var eventData = new EventData().PopulateWithNonDefaultValues(request);
var eventId = new Random().NextInt64();

var eventManagerMock = new Mock();

var requestContextMock = new Mock();
var requestMock = new Mock();

eventManagerMock.Setup(x => x.CreateNewEvent(
It.Is(y =>
y.Id.Equals(eventData.Id) &&
...........
y.Metadata.Zip(eventData.Metadata, (metaY, metaR) =>
metaY.Key == metaR.Key &&
metaY.Value == metaR.Value).All(result => result)
)
)).Returns(eventId)
.Verifiable("IEventManager.CreateNewEvent was not invoked.");

BaseAppHost.Container.Register(eventManagerMock.Object);
BaseAppHost.Container.Register(requestContextMock.Object);
BaseAppHost.Container.Register(requestMock.Object);

var service = BaseAppHost.Container.Resolve();

// Act
var response = service.Post(request);

// Assert
eventManagerMock.Verify();

}
Но в процессе, в сегменте кода:

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

if (Response == null)
throw new HttpError(HttpStatusCode.BadRequest,
HttpErrorCodes.NotGenerateResponse.ToString(), HttpErrorMessages.NotGenerateResponse);
Объект ответа всегда имеет значение NULL и не устанавливает имитируемое значение. Есть ли у них какое-нибудь представление о решении этой проблемы?


Подробнее здесь: https://stackoverflow.com/questions/790 ... nse-object
Ответить

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

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

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

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

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