Я пишу тесты xunit для пользовательского модуля IotEdge, где мне нужно Mock ModuleClient.CreateFromEnvironmentAsync()
, который открывает соединение со средой выполнения Edge.
Код модуля Iot Edge выглядит так:
var amqpSetting = new AmqpTransportSettings(TransportType.Amqp_Tcp_Only);
ITransportSettings[] settings = { amqpSetting };
// Open a connection to the Edge runtime
this.ioTHubModuleClient = await ModuleClient.CreateFromEnvironmentAsync(settings);
await this.ioTHubModuleClient.OpenAsync();
Код модульного теста выглядит так:
var amqpSetting = new AmqpTransportSettings(TransportType.Amqp_Tcp_Only);
ITransportSettings[] settings = { amqpSetting };
var moduleClientMoq = new Mock<ModuleClient>(ModuleClient.CreateFromEnvironmentAsync(settings)); // getting an exception-"System.NotSupportedException: 'Type to mock must be an interface or an abstract or non-sealed class."
Я получаю исключение "System.NotSupported". Пожалуйста, подскажите, как имитировать клиент модуля.