Microsoft.Azure.Devices.Client
中 DeviceClient
类的签名为
公共(public)密封类DeviceClient:IDisposable
。
这并没有真正提出如何为使用客户端的类编写可测试代码的想法。
客户端依赖于一个听起来很有前途的传输层(“让我们提供传输,然后在测试中模拟它;类似于 HttpClient
和 HttpMessageHandler
”),但是工厂DeviceClient.Create
方法将传输视为enum
,因此这个攻击角度似乎是封闭的。
适配器模式(即重新实现接口(interface))是可行的方法吗?
最佳答案
使用密封类并且没有虚拟方法,接口(interface)和适配器模式可能是最好的(尽管维护成本很高)解决方案。你需要拦截,所以你看过 Microsoft Fake 框架 and use a shim在测试时隔离该程序集。
关于windows-10-iot-core - 使用 Microsoft.Azure.Devices.Client.DeviceClient 编写可测试代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50792952/