使用最小起订量,如果我尝试直接在 Foo
上模拟方法,我会得到:Invalid verify on a non-virtual (overridable in VB) member.
我的替代方案是模拟 IFoo
,它摆脱了上述问题,但是我无法构造它,因为 Foo
没有无参数构造函数(不能为接口(interface)模拟传递构造函数参数。
)。我能做什么?
最佳答案
您应该能够毫无问题地模拟 IFoo,并且在模拟接口(interface)时没有理由传递参数。您的 IFoo 模拟将完全是那个(模拟!),并且不了解 Foo 或任何实际实现,因此传递构造函数参数没有意义。
编辑:我要补充一点,如果接口(interface)存在,则模拟接口(interface)几乎总是比模拟具体实现更可取。如果您只有一个具体的实现,那么您想要模拟它的事实可能意味着它是添加接口(interface)的一个很好的候选者。
关于c# - 如何在没有默认构造函数的情况下模拟对象上的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6394021/