我正在尝试测试我的应用程序,它使用Microsoft Exchange Web服务dll访问Exchange Server。
我希望在我的测试中将我的应用程序与实际Exchange Server的需求隔离开来,并且我意识到我无法模拟Exchange DLL ......
另一个问题是,我无法更改操作代码,它不使用接口或适配器来访问Exchange Web服务DLL,因此我不能简单地将其存根...
在我的研究中,我找到了Microsoft Moles框架,它允许我使用我自己的委托来鼹鼠并替换任何方法(甚至是构造函数)。但是,我发现在应用程序代码中,我们使用的是内部Microsoft数据类型(例如 EmailMessage ),这些数据类型不允许自由创建或更改它们。< / p>
对于在这种情况下我能做些什么,有人有任何建议吗?
感谢。
答案 0 :(得分:3)
如果我在哪里,我会尝试隐藏电子邮件服务{/ 3}} 后面的交换,并将所有直接引用交换的代码替换为对该外观的调用。
Mockin立面比嘲弄交换本身容易得多。
如果客户决定使用其他电子邮件系统,您只需重新实现外观而不是更改整个应用程序,这是副作用。