首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用NMock2模拟内部接口?

如何使用NMock2模拟内部接口?
EN

Stack Overflow用户
提问于 2010-08-05 00:18:05
回答 2查看 848关注 0票数 0

如果我尝试这样做,我只会得到一个异常:

代码语言:javascript
复制
System.TypeLoadException : Access is denied: 'Namespace.IInternalInterface'.

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-05 00:19:56

我找到了答案:

NMock2 (和其他模拟框架)。将在动态生成的程序集中创建模拟对象。为了让mocking框架创建mock对象,内部应该对这些程序集可见。

只需将以下声明添加到测试模块的AssemblyInfo.cs类中:

代码语言:javascript
复制
// Allow unit test and mock assemblies to see internal members.
[assembly: InternalsVisibleTo("MyAssembly.UnitTest")]
[assembly: InternalsVisibleTo("NMock2")]
[assembly: InternalsVisibleTo("Mocks")]
[assembly: InternalsVisibleTo("MockObjects")]
票数 2
EN

Stack Overflow用户

发布于 2012-05-04 06:30:29

找到并记录了解决方案。

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

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

代码语言:javascript
复制
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3407552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档