Насмешливый WebOperationContext

Я использую WCFMock для макета WebOperationContext в моем веб-сервисе. Единственное использование - добавить собственный заголовок HTTP в коллекцию WebOperationContext.Current.OutgoingResponse.Headers. Я не могу проверить это с помощью Moq. Что я уже пробовал:

  • Убедитесь, что метод Add вызывается. Это не удается, потому что Add не является виртуальным
  • Попробуйте получить доступ к заголовку напрямую из MockedWebOperationContext.Current. Это всегда ноль в числе

Как я могу проверить в моем модульном тесте, что был добавлен пользовательский заголовок?

1 ответ

Решение

Догадаться. Вот решение для потомков.

Когда мы создаем "moq mock" для IWebOperationContext, в примере предлагается установить свойство DefaultValue = DefaultValue.Mock, Это будет издеваться над всеми зависимостями, включая коллекцию HttpHeaders. Я пропустил это и высмеял OutgoingWebResponseContext вернуть WebHeaderCollection, Для моего теста я просто утверждаю на этой коллекции.

Другие вопросы по тегам