我在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不會嘲笑它們。
哦咄!我應該更看重我最初的問題。問題已解決。非常感謝Nicholas!實際上,我在應用程序中的一個位置傳遞了一個ContainerBuilder,只是爲了引導程序,並且希望確保它能夠正確註冊我的模塊。 – 2010-08-19 09:00:21