«Внедрение зависимостей» относится к общей практике предоставления некоторого внешнего ресурса объекту, который требует его. Внешний ресурс или зависимость может быть предоставлен через конструктор объекта, свойство или метод или даже как параметр метода.
И вы правы, обычной практикой является использование IOC для управления возможными зависимостями и предоставления их своим «клиентам».
Moq, как и другие фальшивые фреймворки (или фреймворки изоляции), - это инструмент, который можно использовать для генерации поддельных (или заглушки или фальшивых) объектов, которые можно использовать как зависимости для класса, который вы тестируете. Большинство фальшивых фреймворков (включая Moq, я думаю, но я не использую его сам) не диктуют, как подделки передаются тестируемому классу (здесь исключение TypeMock Isolator в том смысле, что в нем есть магия, которая может внедрить зависимости в тестируемом классе).
Нет никаких причин, по которым вы не могли бы использовать IOC для регистрации созданных в Moq подделок и подачи их в тестируемый класс, но это действительно не имеет никакого отношения к Moq (или NMock или Rhino Mocks).