Клиент служебной шины Azure в модульном тесте с запуском по таймеру.

Я пытаюсь создать тест Xunit для функций, запускаемых таймером Azure, и мне нужно передать очередь клиента служебной шины в методе Run, и я не могу имитировать очередь служебной шины и не знаю, как передать в качестве параметра

Ниже моя лазурная функция

 [FunctionName("TimerJob")]
    public static async Task Run([TimerTrigger("%TimerJobExpression%")] TimerInfo myTimer,
        [ServiceBus("%Queue1%", Connection = "ServiceBusConnection")] IAsyncCollector<string> Queue1,
        [ServiceBus("%Queue2%", Connection = "ServiceBusConnection")] IAsyncCollector<string> Queue2,
        ILogger log)
    {
          //logic
    }

Ниже приведен метод тестирования, который я пытаюсь создать.

 [Fact]
public async Task Run_Queue()
    {
      
        var param1 = default(TimerInfo);
        var result = await ProducerClientTimerJob.Run(param1, null, null, logger);

       
    }

person sreddy    schedule 30.05.2021    source источник
comment
Он просто хочет IAsyncCollector<string>; вы можете игнорировать атрибут для модульного теста.   -  person sellotape    schedule 30.05.2021


Ответы (1)


Как упоминалось в комментарии, вам просто нужно предоставить объект IAsyncCollector.

Это выходная привязка, и информация была сохранена в атрибуте, поэтому вам не нужно предоставлять какую-либо входную информацию о служебной шине. просто предоставьте объект IAsyncCollector в порядке.

person Bowman Zhu    schedule 31.05.2021