首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于能够进行猴子补丁,.NET 4可以进行更好的单元测试/模拟吗?

由于能够进行猴子补丁,.NET 4可以进行更好的单元测试/模拟吗?
EN

Stack Overflow用户
提问于 2009-12-06 20:16:22
回答 1查看 795关注 0票数 2

关于即将到来的Iron Python实现,请考虑这一点。

从理论上讲,它将允许猴子修补,对吗?不管是好是坏,都无关紧要。考虑到其他人的不可测试代码(至少很容易),动态关键字将允许monkey patching,不是吗?如果我没看错的话,这对C#和VB有很大的潜力。

你对此有何看法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-06 20:21:14

CLR4中的动态类型支持并没有真正为整个.Net类型系统提供完整的猴子补丁支持。它为您提供了另一种模拟对象的方法,但坦率地说,当前的方法已经足够好了(参见moq:http://code.google.com/p/moq/)

使用动态类型时,您会失去智能感知,因此可能会有这样的争论:使用动态类型进行模拟是不可取的。

IronPython风格的拦截将允许您使用自己想要的行为包装现有的对象,但它不允许您告诉框架修补所有Foo对象(从这一点开始),因此IronPython方法将调用Bar2而不是Bar。

请记住,在IronRuby和IronPython中有两个独立的类型系统,一个是底层的CLR类型系统,另一个是IronRuby/IronPython类型系统,当它们调用C#代码时,就会进行编组。因此,即使IronRuby/IronPython可以正确地修补他们自己的类型系统,他们也不能使用相同的机制来修补CLRs类型系统。

如果你想要猴子补丁,你需要正确的拦截,那就是hardDynamic interception of calls in .NET

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1855242

复制
相关文章

相似问题

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