使用Microsoft.Azure.Devices.Client.DeviceClient编写可测试代码

时间:2018-06-11 08:00:45

标签: windows-10-iot-core azure-iot-hub azure-iot-hub-device-management

DeviceClientMicrosoft.Azure.Devices.Client类的签名是

public sealed class DeviceClient : IDisposable

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

客户端依赖于一个听起来很有希望的传输层("让我们提供传输,然后在测试中模拟它;类似HttpClientHttpMessageHandler" )但是工厂方法DeviceClient.Create将传输视为enum,因此这个攻角似乎是关闭的。

适配器模式(即重新实现接口)的方式是什么?

1 个答案:

答案 0 :(得分:2)

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