【问题标题】:Writing testable code with Microsoft.Azure.Devices.Client.DeviceClient使用 Microsoft.Azure.Devices.Client.DeviceClient 编写可测试的代码
【发布时间】:2018-06-11 08:00:45
【问题描述】:

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

public sealed class DeviceClient : IDisposable.

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

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

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

【问题讨论】:

  • 我会尝试向DeviceClient提交一个接口,也许下一个版本将是测试友好的!

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    相关资源
    最近更新 更多