我想将在NServiceBus中进行单元测试时使用的IBus
注入我正在测试的传奇和处理程序,但Test.Bus
是null
。如何访问IBus
以便我可以注入我的处理程序和传奇。我真的不喜欢这类东西的公共财产。
答案 0 :(得分:1)
自从我自己发现以来,我自己回答。问题是我覆盖了从IBus
继承的Saga<>
属性。所以,如果你有这样的传奇
public void SomeSaga : Saga<SomeData>
{
private IBus _bus;
public SomeSaga(..., IBus bus)
{
_bus = bus;
}
public void Handle(SomeMessage message)
{
_bus.Publish(something);
}
}
将其更改为:
public void SomeSaga : Saga<SomeData>
{
public SomeSaga(...)
{
}
public void Handle(SomeMessage message)
{
Bus.Publish(something);
}
}