Masstransit In Memory Testing等待消费者执行

时间:2017-09-25 18:03:10

标签: c# unit-testing masstransit

所以我一直在尝试使用内存功能编写公共交通测试。我想知道人们在等待消费者执行方面的做法。在下面的例子中,使用睡眠或我也试过一个while循环,但不是任何一个的粉丝,任何更好的想法?我基本上想检查消费者是否已被执行。

[Fact]
public async Task SomeTest()
{   
     var busControl = Bus.Factory.CreateUsingInMemory(cfg =>
     {
         cfg.ReceiveEndpoint("commands", ec =>
         {
             ec.LoadFrom(context);
         });
     });
     var address = new Uri(bus.Address, "commands")
     await sendEndpoint.Send(MyExampleCommand());
     Thread.Sleep(2000);

     //Check nsubstitute mock received 
}

1 个答案:

答案 0 :(得分:2)

查看MassTransit内置的测试工具功能。他们应该给你一些如何测试它们的好主意。

您可以查看线束测试以了解它们应该如何使用。请注意,它们适用于任何测试框架,而不仅仅是NUnit。

https://github.com/MassTransit/MassTransit/blob/develop/src/MassTransit.Tests/Testing/ConsumerTest_Specs.cs