首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用中介器测试MassTransit使用者

使用中介器测试MassTransit使用者
EN

Stack Overflow用户
提问于 2022-08-25 10:16:07
回答 1查看 88关注 0票数 0

我有消费者CarCreatedConsumer,我想对它进行单元测试

代码语言:javascript
复制
public class CarCreatedConsumer: IConsumer<CarCreatedEvent>
{
   private readonly IMediator _mediator;
   public CarCreatedConsumer(IMediator mediator)
   {
        _mediator = mediator;
   }
   public async Task Consume(ConsumeContext<CarCreatedEvent> context)
   {
      ....
   }
}

使用MassTransit.Testing,我试图为事件使用者编写测试

代码语言:javascript
复制
[TestFixture]
public class MyTests
{
   private ServiceProvider _provider;
   private InMemoryTestHarness _harness;

   [SetUp]
   public void SetUp()
   {
     _provider = new ServiceCollection()
       .AddMassTransitInMemoryTestHarness(cfg =>
       {
          cfg.AddConsumer<CarCreatedConsumer>();
       }).AddMediator()
      .BuildServiceProvider(true);
         
      _harness = _provider.GetRequiredService<InMemoryTestHarness>();
   }
   
  [Test]
  public async Task MessageShouldBeConsumed()
  {
     await _harness.Start();
    try
    {
     await _harness.InputQueueSendEndpoint.Send<CarCreatedEvent>(new 
     {
        CarId = Guid.NewGuid.ToString(),
        CarOwnerName = "John Stuart"
        ...
     }
        // Always false
        Assert.True(_harness.Consumed.Select<CarCreatedEvent>().Any());
    }
    finally
    {
       await _harness.Stop();
    }
  }
}

我希望这会返回true,但是它失败了(返回false)。很明显我做错了什么,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-25 10:51:05

您的测试工具的使用是可疑的,并且使用的配置也是过时的版本。我建议阅读文件在当前的测试工具和如何测试您的消费者。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73485784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档