В чем разница между MOQ и автоматической установкой?

#unit-testing #mocking #moq #autofixture #automocking

#модульное тестирование #издевательство #moq #автоматическая установка #автоматическая настройка

Вопрос:

У меня есть достаточный опыт использования MOQ, в то время как недавно я наткнулся на автоматическую установку. В чем различия между этими фреймворками?

Ответ №1:

В FAQ объясняется разница. Короче говоря

Автоматическая установка использует отражение для создания «исправных» экземпляров общедоступных типов. При необходимости для заполнения аргументов конструктора автоматически генерируются экземпляры других типов, а также присваиваются значения общедоступным свойствам, доступным для записи. По сути, оно просто использует общедоступный API запрашиваемого типа для создания его экземпляра и заполнения. Оно не делает ничего такого, чего вы, как разработчик, не могли бы сделать вручную — оно просто делает это за вас автоматически.

Напротив, большинство динамических макетных библиотек являются производными от известных типов, чтобы переопределять поведение виртуальных членов. Их цель — выполнить проверку поведения тестируемой системы (SUT).

Вы можете объединить автоматическую установку с Moq, чтобы превратить его в контейнер автоматической установки.