У меня есть приложение, которое использует сервис WCF. Теперь я хотел бы добавить модульные тесты в приложение.
В некоторых случаях мне нужно смоделировать службу WCF, поскольку иногда получить жесткое поведение от службы сложно (например, служба генерирует особые исключения).
Я мог бы добавить еще один интерфейс к клиенту wcf, но это выглядит немного глупо, поскольку клиентские вызовы уже используют интерфейс.
Есть ли простой способ издеваться над службой WCF? Проще, чем создать еще один интерфейсный слой и перенаправить каждый вызов WCF внутри него?
Редактировать: Большинство ответов, похоже, мало что знают об использовании сервиса WCF, поэтому некоторые пояснения:
Чтобы использовать службу WCF из ViewModel, мне нужно управлять соединением примерно так:
ChannelFactory<IMyWcfService> channelFactory = new ChannelFactory<IMyWcfService>("");
IMyWcfService proxy = channelFactory.CreateChannel();
proxy.CallMyStuff();
proxy.Close();
Я не могу просто передать ViewModel прокси в WCF, так как соединение должно быть открыто и закрыто для каждой транзакции. По этой причине использование RhinoMock / NMock не будет работать, так как им нужен ViewModel, который получает прокси в качестве параметра, что невозможно сделать, если вы используете WCF.