0

如果我尝试这个,我只会得到一个例外:

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

公开接口不是一个可接受的解决方案。我不想更改我的 API 的可见性来测试它。

4

2 回答 2

3

找到并记录了解决方案。

http://www.rhyous.com/2012/05/03/nmock2-internal-interface/

事实证明,较新版本的 NMock2(我在这里得到:NMock2 Project)只需要一个,而且它是不同的。

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
于 2012-05-03T22:30:29.237 回答
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")]
于 2010-08-04T16:19:56.313 回答