每次我设置一个Mock对象以在Rebus SagaFixture中抛出异常时,当异常被抛出时,总线句柄就会多次重试。这会导致Saga数据测试断言中的异步问题,以及在saga第一次初始化后基于状态变异的异常。
发布于 2022-08-15 22:56:07
如果要配置尝试传递的次数,可以使用具有maxDeliveryAttempts
参数的saga夹具工厂方法之一,例如
using var fixture = SagaFixture.For(() => new MySaga(), maxDeliveryAttempts: 1);
此测试表明,当设置最大传递尝试:https://github.com/rebus-org/Rebus.TestHelpers/blob/master/Rebus.TestHelpers.Tests/Bugs/TestAsyncConcurrencyChallengeWithSagaFixture.cs时,捕获的异常数是可以依赖的。
不幸的是,通用工厂方法(例如SagaFixture.For<MySaga>()
)目前没有任何附加参数,但我将在今天晚些时候补充这一点。
更新:Rebus.TestHelpers 7.1.1在泛型工厂方法中接受相同的参数,所以现在可以调用SagaFixture.For<MySaga>(maxDeliveryAttempts: 1))
https://stackoverflow.com/questions/73365229
复制相似问题