Тестирование служб WCF без их запуска - PullRequest
0 голосов
/ 20 сентября 2011

Я хочу протестировать свои классы WCF (интеграционное тестирование), но не хочу запускать их как сервисы WCF.

Все работает хорошо, но в некоторых случаях мне нужно прочитать IncomingMessageHeaders из OperationContext.Интересно, можно ли это сделать?

До сих пор я узнал, что я могу создать OperationContext и использовать его.Но мне нужно создать его через ChannelFactory, который требует Binding (а затем и Endpoint).Что мне нужно (вероятно), так это сделать локальную привязку к моему классу реализации.Возможно ли это?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2011

Альтернатива состоит в том, чтобы сделать каждый метод WCF однострочным, вызывая уровень бизнес-логики, который вы сможете выполнять модульным тестированием, не беспокоясь о деталях реализации WCF.

2 голосов
/ 20 сентября 2011

Лучший способ справиться с этим - использовать DI / IoC , чтобы абстрагировать OperationContext от интерфейса, а затем использовать фреймворк , такой как Moq или Rhino для реализации этого интерфейса.Когда вы тестируете, ваш фальшивый фреймворк предоставит экземпляр этого нового класса вместо OperationContext.Это полностью устраняет вашу зависимость от чего-то внешнего во время тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...