Как подсказывают другие, вы можете бросить свой собственный макет или задать ряд ожиданий для зависимости.
Например, вы можете проверить, что ваш метод был вызван:
var mock = new Mock<IDependency>();
var subject = new MyClass(mock.Object);
subject.Clear();
mock.Verify( dep => dep.Reset(), Times.AtMost(2));
Однако стоит отметить, что работа в конструкторе - это известный запах кода , и этот запах усиливается, когда вы пытаетесь писать тесты.
Тот факт, что ваш конструктор должен вызывать этот метод для зависимости, предполагает, что этот объект знает слишком много информации о деталях реализации зависимости. Это нарушает принцип Open Closed и закрывает вас от сценариев, когда вы не хотите, чтобы метод Reset вызывался при его инициализации.
Также учтите, что для любого класса или теста, использующего конкретный объект MyClass в качестве фиктивного параметра, потребуется инициализация Mock, иначе вы получите исключение NullReferenceException. Это добавляет значительную нагрузку на написание ваших тестов и добавляет уровень хрупкости, который приравнивается к долгосрочному обслуживанию и ложным негативам в ваших тестах. Единственный способ обойти это - сделать все интерфейсом, который хотя и эффективен, но и не является лучшей долгосрочной стратегией.
Согласно http://googletesting.blogspot.com/2009/07/separation-anxiety.html, использование Фабрики уменьшит некоторую часть этой связи и откроет вас для лучшего повторного использования этого объекта.