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