Насмешливый WebOperationContext
Я использую WCFMock для макета WebOperationContext в моем веб-сервисе. Единственное использование - добавить собственный заголовок HTTP в коллекцию WebOperationContext.Current.OutgoingResponse.Headers. Я не могу проверить это с помощью Moq. Что я уже пробовал:
- Убедитесь, что метод Add вызывается. Это не удается, потому что Add не является виртуальным
- Попробуйте получить доступ к заголовку напрямую из MockedWebOperationContext.Current. Это всегда ноль в числе
Как я могу проверить в моем модульном тесте, что был добавлен пользовательский заголовок?
1 ответ
Решение
Догадаться. Вот решение для потомков.
Когда мы создаем "moq mock" для IWebOperationContext, в примере предлагается установить свойство DefaultValue = DefaultValue.Mock
, Это будет издеваться над всеми зависимостями, включая коллекцию HttpHeaders. Я пропустил это и высмеял OutgoingWebResponseContext
вернуть WebHeaderCollection
, Для моего теста я просто утверждаю на этой коллекции.