DeviceClient
中Microsoft.Azure.Devices.Client
类的签名是
public sealed class DeviceClient : IDisposable
。
这并没有真正建议如何为使用客户端的类编写可测试代码。
客户端依赖于一个听起来很有希望的传输层("让我们提供传输,然后在测试中模拟它;类似HttpClient
和HttpMessageHandler
" )但是工厂方法DeviceClient.Create
将传输视为enum
,因此这个攻角似乎是关闭的。
适配器模式(即重新实现接口)的方式是什么?
答案 0 :(得分:2)
使用密封类并且没有虚拟方法,接口和适配器模式可能是最好的(尽管高维护)解决方案。您需要拦截,因此您在测试时查看了Microsoft Fake框架and use a shim以隔离该程序集。