Написание тестируемого кода с помощью Microsoft.Azure.Devices.Client.DeviceClient

Подпись для DeviceClient класс в Microsoft.Azure.Devices.Client является

public sealed class DeviceClient : IDisposable,

Это на самом деле не предлагает идеи о том, как написать тестируемый код для класса, который использует клиент.

Клиент зависит от транспортного уровня, который звучит многообещающе ("давайте предоставим транспорт, а затем смоделируем его в тестах; что-то вроде HttpClient а также HttpMessageHandler") но заводские методы DeviceClient.Create взять транспорт как enum так что этот угол атаки кажется закрытым.

Является ли модель адаптера (то есть, повторно реализовать интерфейс) путь?

1 ответ

С запечатанным классом и без виртуальных методов, интерфейс и шаблон адаптера могут быть лучшим (хотя и требующим большого количества обслуживания) решением. Вы нуждаетесь в перехвате, поэтому вы взглянули на Microsoft Fake Framework и использовали прокладку, чтобы изолировать эту сборку при тестировании.

Другие вопросы по тегам