1

DeviceClient类的签名Microsoft.Azure.Devices.Client

public sealed class DeviceClient : IDisposable.

这并没有真正提出如何为使用客户端的类编写可测试代码的想法。

客户端依赖于一个听起来很有希望的传输层(“让我们提供传输,然后在测试中模拟它;类似HttpClientand HttpMessageHandler”),但是工厂方法DeviceClient.Create将传输作为一个,enum所以这个攻击角度似乎是封闭的。

适配器模式(即重新实现接口)是否可行?

4

1 回答 1

2

使用密封类且没有虚拟方法,接口和适配器模式可能是最好的(尽管维护成本很高)解决方案。您需要拦截,因此您是否查看过 Microsoft Fake 框架并在测试时使用 shim隔离该程序集。

于 2018-06-11T10:02:43.007 回答