试图模拟Microsoft Exchange Web服务

时间:2011-03-20 09:17:56

标签: c# mocking exchangewebservices

我正在尝试测试我的应用程序,它使用Microsoft Exchange Web服务dll访问Exchange Server。

我希望在我的测试中将我的应用程序与实际Exchange Server的需求隔离开来,并且我意识到我无法模拟Exchange DLL ......

另一个问题是,我无法更改操作代码,它不使用接口或适配器来访问Exchange Web服务DLL,因此我不能简单地将其存根...

在我的研究中,我找到了Microsoft Moles框架,它允许我使用我自己的委托来鼹鼠并替换任何方法(甚至是构造函数)。但是,我发现在应用程序代码中,我们使用的是内部Microsoft数据类型(例如 EmailMessage ),这些数据类型不允许自由创建或更改它们。< / p>

对于在这种情况下我能做些什么,有人有任何建议吗?

感谢。

1 个答案:

答案 0 :(得分:3)

如果我在哪里,我会尝试隐藏电子邮件服务{/ 3}} 后面的交换,并将所有直接引用交换的代码替换为对该外观的调用。

Mockin立面比嘲弄交换本身容易得多。

如果客户决定使用其他电子邮件系统,您只需重新实现外观而不是更改整个应用程序,这是副作用。