Основываясь на комментариях и обновленном вопросе, часть, которая сбивает с толку, - то, зачем нужен другой внешний класс. Показанный внутренний класс не зависит от внешнего. Зачем макету тогда нужно создавать новый внешний класс?
Помимо этого, на основе документов кажется, что вам нужно настроить класс расширения, чтобы вы могли подделать статическое расширение. звонки.
Isolate.Fake.StaticMethods(typeof(Extensions));
//...
Оригинальный ответ
Не имитируйте метод расширения в этом случае. Вы знаете, что вызывает метод расширения. так что подделка.
public void TestExtension() {
//Arrange
string expected = "Fake result";
var fakedInnerClasses = Isolate.Fake.AllInstances<InnerClass>();
Isolate.WhenCalled(() => fakedInnerClasses.GetDescription())
.WillReturn(expected);
var subject = new OuterClass();
//Act
subject.DoSthWithExtension();
//Assert
//...
}
Так что теперь, когда вызывается внешний и вызывается метод расширения, он будет действовать на макет, контролируемый вами.