2

我想将IBus在 NServiceBus 中进行单元测试时使用的那个注入到我正在测试的 sagas 和处理程序中,Test.Bus但是null. 我如何访问,IBus以便我可以注入我的处理程序和 sagas。我真的不喜欢为这类事情拥有公共财产。

4

1 回答 1

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);
    }
}
于 2013-09-20T10:26:33.453 回答