Test.Bus имеет значение null, когда сага модульного тестирования в NServiceBus

Я хочу ввести IBus который используется при выполнении модульного тестирования в NServiceBus в саги и обработчик, который я тестирую, но Test.Bus является null, Как мне получить доступ к IBus так что я могу ввести в мои обработчики и саги. Мне действительно не нравится иметь публичные свойства для таких вещей.

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);
    }
}
Другие вопросы по тегам