Скажем, у меня есть класс "ClassA", который имеет зависимость от класса "ClassB" (вводится в ctr класса A). Я хочу высмеять ClassB, чтобы я мог тестировать ClassA в изоляции. Оба класса являются внутренними.
Исправьте меня, если я ошибаюсь, но похоже, что Moq может только издеваться над классом, если он является общедоступным, он имеет открытый конструктор без параметров, а методы, которые нужно издеваться, - это public virtual
. Я не хочу, чтобы эти классы были общедоступными. Я что-то пропустил с помощью Moq, или это просто не подходит для того, что я хочу сделать?
Думаю, я мог бы создать интерфейс (скажем, "IClassB" ), который реализует ClassB, вставлять его в ClassA и вместо этого имитировать интерфейс. ClassB все еще может быть внутренним (хотя я понимаю, что методы интерфейса должны быть общедоступными). Хотя это сработает, я чувствую себя неловко в создании множества интерфейсов, единственной целью которых является поддержка unit test mocking. Мысли?