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