В моей работе мы используем Moq для издевательств и Unity для контейнера IOC. Я новичок в этом и не имею много ресурсов на работе, чтобы помочь мне в определении лучших практик, которые я должен использовать.
В настоящее время у меня есть группа интерфейсов репозитория (Ex: IRepository1, IRepository2... IRepository4), которые необходимо выполнить конкретному процессу для выполнения своей работы.
В фактическом коде я могу определить все объекты IRepository, используя контейнер IOC и используя метод RegisterType().
Я пытаюсь найти лучший способ проверить метод, который нуждается в 4 упомянутых репозиториях.
Я думал, что могу просто зарегистрировать новый экземпляр контейнера Unity IOC и вызвать RegisterInstance в контейнере для каждого макета, проходящего в значение Mock.Object для каждого из них. Я пытаюсь сделать этот процесс регистрации многократно используемым, поэтому мне не нужно продолжать делать одно и то же снова и снова с каждым unit test, если только unit test не требует, чтобы некоторые конкретные данные возвращались из репозитория. Вот где проблема... Какова наилучшая практика для настройки ожидаемых значений в издеваемом репозитории? Похоже, если я просто вызову RegisterType в контейнере Unity, я бы потерял ссылку на фактический объект Mock и не смог бы переопределить поведение.