Я только начал внедрять модульные тесты (используя xUnit и Moq) в уже созданном проекте. В проекте широко используется внедрение зависимостей через контейнер Unity.
У меня есть две службы A и B. В этом случае проверяется служба A. Служба A вызывает B и передает ей делегата внутренней функции. Этот «обратный вызов» используется для уведомления A о получении сообщения, которое оно должно обработать.
Следовательно, A вызывает (где b является экземпляром службы B):
b.RegisterHandler(Guid id, Action<byte[]> messageHandler);
Чтобы протестировать службу A, мне нужно иметь возможность позвонить messageHandler
, поскольку это единственный способ, которым она в настоящее время принимает сообщения.
Можно ли это сделать с помощью Moq? то есть. Могу ли я смоделировать службу B, чтобы при вызове RegisterHandler
значение messageHandler
передавалось моему тесту?
Или мне нужно изменить это? Есть ли какие-то шаблоны дизайна, которые я должен использовать в этом случае? Кто-нибудь знает какие-нибудь хорошие ресурсы по этому виду дизайна?