Я разместил это на форумах TypeMock, но слишком нетерпеливо ждать ответа там. Это очень важный вопрос.Настройка поведения метода вызывает вызов метода
Я пытаюсь создать поддельный IContainer. Вот что у меня есть:
var container = Isolate.Fake.Instance<IContainer>();
var program = Isolate.Fake.Instance<IProgram>();
Isolate.WhenCalled(() => container.Resolve<IProgram>()).WillReturn(program);
(IProgram
представляет собой интерфейс в моем коде).
Когда я пытаюсь запустить этот код, я получаю исключение Autofac: «Запрошенная служба MyApp.IProgram не была зарегистрирована».
Как можно исключить это исключение? Я на самом деле не вызываю container.Resolve(), правильно? Я просто настраиваю его, чтобы вернуть поддельный IProgram.
Несвязанная информация о форексе: я тестирую TypeMock, потому что Autofac широко использует методы расширения, а Moq не будет имитировать их.
О Дух! Мне следовало бы более пристально рассмотреть мою первоначальную проблему. Проблема решена. Большое спасибо Николаю! Я фактически передаю ContainerBuilder в одном месте в своем приложении, только для загрузчика и хочу, чтобы он правильно регистрировал мои модули. –