【问题标题】:I want to Mock a Azure function with ServiceBusTrigger using MsTest with Moq我想使用带有 Moq 的 MsTest 模拟带有 ServiceBusTrigger 的 Azure 函数
【发布时间】:2021-03-03 10:06:37
【问题描述】:

我想使用带有 Moq 的 MsTest 模拟带有 ServiceBusTrigger 的 Azure 函数。如何模拟以下代码

    [FunctionName("TransformFunction")]
    public async void Run(
            [ServiceBusTrigger("testmessagetopic", "testMessageSubscription", Connection = "ConnectionString")]Message mySbMsg,
            [ServiceBus("loaddatatopic", Connection = "ConnectionString")]IAsyncCollector<Message> loadDataSbQueue,
            ILogger log)
    {   //Does something         
        await this._cfcExtractorService.ProcessAsync(mySbMsg, loadDataSbQueue);
    }

我是这个 AzureFunctions 的新手。我想知道如何模拟这个。

【问题讨论】:

    标签: c# azure-functions moq mstest azure-servicebus-topics


    【解决方案1】:

    IAsyncCollector 是一个简单的接口,您可以通过将每个条目添加到列表中来简单地将其实现为测试库的一部分,最后检查是否将预期的项目添加到列表中。

    This 是一个你可以参考的实现,这里是相同的参考

    public class AsyncCollector<T> : IAsyncCollector<T>
    {
        public readonly List<T> Items = new List<T>();
    
        public Task AddAsync(T item, CancellationToken cancellationToken = default(CancellationToken))
        {
    
            Items.Add(item);
    
            return Task.FromResult(true);
        }
    
        public Task FlushAsync(CancellationToken cancellationToken = default(CancellationToken))
        {
            return Task.FromResult(true);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多