Модульное тестирование расширения поведения WCF

Это сводит меня с ума. У меня есть расширение, которое мы используем, чтобы изменить ответ содержимого на запрос, если есть ошибка. В принципе, если все работает, он сериализуется в JSON как обычно, но если мы получаем необработанное исключение, мы сериализуем на основе другого объекта.

Нам нужны модульные тесты, но я не могу понять, как их написать. Средство проверки работоспособности вращается вокруг StatusCode, экземпляра сообщения об ошибке и ContentType ответа.

Чтобы изменить ответ, я использую статический класс WebOperationContext. Я видел примеры насмешек над этим, но мне кажется, что мне приходится жестко кодировать специальную логику, которая затем начала бы просачиваться в реальный код, который мне не нужен.

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

1 ответ

Решение

У меня была похожая ситуация, и я не смог смоделировать WCF (по крайней мере, с помощью Moq), главным образом потому, что большинство классов либо запечатаны, либо имели внутренние конструкторы.

Что я сделал, так это чтобы мое поведение IParameterInspector и IClientMessageInspector (в моем случае я нуждался в обоих) и поместил всю мою логику в AfterCall или же BeforeCallили какой вам нужен, в зависимости от типа инспектора.

Таким образом, я мог проверить всю логику, которая меня волновала. Фактическое поведение WCF осталось непроверенным, но все, что он на самом деле сделал, - это просто добавил двух инспекторов и ничего больше.

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