The signature for DeviceClient class in Microsoft.Azure.Devices.Client is
public sealed class DeviceClient : IDisposable.
This doesn't really suggest ideas for how to write testable code for the class that uses the client.
The client depends on a transport layer which sounds promising ("let's provide the transport and then mock it in tests; something like HttpClient and HttpMessageHandler") but the factory methods DeviceClient.Create take the transport as an enum so this angle of attack seem to be closed.
Is an adapter pattern (i.e. re-implement the interface) the way to go?