当NServiceBus中的单元测试saga时,Test.Bus为null

时间:2013-09-20 10:20:45

标签: nservicebus

我想将在NServiceBus中进行单元测试时使用的IBus注入我正在测试的传奇和处理程序,但Test.Busnull。如何访问IBus以便我可以注入我的处理程序和传奇。我真的不喜欢这类东西的公共财产。

1 个答案:

答案 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);
    }
}