我们正在使用Moq,我想知道virtual
方法当前的作用是什么 - 在2008年的帖子中,很明显你必须将你的方法标记为虚拟,以便Moq工作(或从接口继承。)
但是,在.Net 4.5中仍然如此,您需要在要模拟的类中使用virutal
方法吗?在围绕静态方法创建包装类时,这也适用 - 包装类要么继承自接口,要么需要将有问题的方法标记为virtual
?
答案 0 :(得分:2)
在.NET 4或4.5中没有改变。正如您提供的链接所解释的那样,Moq使用Castle Windsor Dynamic Proxy来生成从您想要模拟的类型派生的类型。因此,标准的继承规则适用。 Moq生成的派生类型只能拦截对任何普通派生类可以覆盖的方法的调用。