2010-08-04 28 views
0

如果我試試這個,我剛剛得到一個異常:如何使用NMock2模擬內部接口?

System.TypeLoadException : Access is denied: 'Namespace.IInternalInterface'. 

使得界面大衆不是一個可接受的解決方案。我不想改變API的可見性來測試它。

回答

2

我發現這個問題的答案:

NMock2,(和其他嘲諷框架)。將在動態生成的程序集中創建模擬對象。爲了讓模擬框架創建模擬對象,內部組件應該對這些組件可見。

只需添加下面的聲明到的AssemblyInfo.cs類被測模塊:

// Allow unit test and mock assemblies to see internal members. 
[assembly: InternalsVisibleTo("MyAssembly.UnitTest")] 
[assembly: InternalsVisibleTo("NMock2")] 
[assembly: InternalsVisibleTo("Mocks")] 
[assembly: InternalsVisibleTo("MockObjects")] 
+0

這是否適合您?經過多次嘗試,我放棄了,並將類型改爲公開。 – nolith 2012-03-10 18:03:57

+0

我無法得到這個工作。 – Rhyous 2012-05-03 21:04:10