windows-10-iot-core - 使用 Microsoft.Azure.Devices.Client.DeviceClient 编写可测试代码

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

Microsoft.Azure.Devices.ClientDeviceClient 类的签名为

公共(public)密封类DeviceClient:IDisposable

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

客户端依赖于一个听起来很有前途的传输层(“让我们提供传输,然后在测试中模拟它;类似于 HttpClientHttpMessageHandler”),但是工厂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/

相关文章:

Ubuntu 20.04 上的 Azure IoT Edge 安装中缺少 Azure IoT 中心

json - 从json读取时发生Powershell错误:属性 'dateFormat'值 'YYYY-MM-DD' Not Acceptable

c# - 使用 Azure IoT 中心设备预配服务 (DPS) 时出现未经授权的异常

azure-iot-hub - 如果那里已经有不同的记录,则用于报告孪生属性的 Azure IoT 设备更新会失败

azure - Terraform 创建 Azure IoT 设备配置服务注册组

c# - 如何从另一个 SoftwareBitmap (UWP) 的区域创建 SoftwareBitmap

c++ - 为 Win IoT Core 构建 ARM 会出现 "not supported"错误

azure - 使用 Azure 设备预配服务的 REST API 注册设备?

azure - 是否可以在没有 Azure 或 Windows Store 的情况下远程更新 Windows 10 IOT Core 应用程序?

c# - C#中Raspberry Pi的CPU温度