Используя autofac с moq

Мне нужно зарегистрировать мой контейнер Autofac с определенным интерфейсом, в этом случае я хочу разрешить макет.

Как я могу это сделать?

Я пробовал:

var AppContainer = ApplicationContainer.GetApplicationContainer();  
var cb = new ContainerBuilder();
cb.RegisterType<Mock<IStudyLoader>>().As<IStudyLoader>().SingleInstance();
cb.Update(AppContainer);

Я не хочу изменять свой код, чтобы разрешить что-то еще, кроме IStudyLoader , но Mock не заменяется на IStudyLoader ; например, Mock .Object заменяется на IStudyLoader , но я не могу зарегистрировать Mock .Object , потому что это не тип.

Поправьте меня, пожалуйста; У меня такое чувство, что я чего-то упускаю.

(У меня есть еще одно ограничение, я не могу использовать другой контейнер, кроме ApplicationContainer.GetApplicationContainer () )

(Я думаю, что лучше вручную вводить зависимость при тестировании, но я не на этот раз хотите изменить производственный код.)

12
задан Daniel Park 4 March 2015 в 15:44
поделиться