Написание тестируемого кода с помощью Microsoft.Azure.Devices.Client.DeviceClient
Подпись для DeviceClient
класс в Microsoft.Azure.Devices.Client
является
public sealed class DeviceClient : IDisposable
,
Это на самом деле не предлагает идеи о том, как написать тестируемый код для класса, который использует клиент.
Клиент зависит от транспортного уровня, который звучит многообещающе ("давайте предоставим транспорт, а затем смоделируем его в тестах; что-то вроде HttpClient
а также HttpMessageHandler
") но заводские методы DeviceClient.Create
взять транспорт как enum
так что этот угол атаки кажется закрытым.
Является ли модель адаптера (то есть, повторно реализовать интерфейс) путь?
1 ответ
С запечатанным классом и без виртуальных методов, интерфейс и шаблон адаптера могут быть лучшим (хотя и требующим большого количества обслуживания) решением. Вы нуждаетесь в перехвате, поэтому вы взглянули на Microsoft Fake Framework и использовали прокладку, чтобы изолировать эту сборку при тестировании.