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