假设我有一个类“ClassA”,它依赖于一个类“ClassB”(注入到 ClassA 的构造函数中)。我想模拟 ClassB 以便我可以单独测试 ClassA。这两个类都是内部的。
如果我错了,请纠正我,但看起来 Moq 只能模拟一个类,如果它是公共的,它有一个公共的无参数构造函数,并且要模拟的方法是public virtual
. 我真的不想让这些课程公开可见。我是否缺少 Moq 的某些东西,或者它只是不适合我想做的事情?
我想我可以创建一个 ClassB 实现的接口(比如“IClassB”),将其注入 ClassA,然后模拟接口。ClassB 仍然可以是内部的(尽管我意识到接口方法必须是公共的)。虽然这可行,但我对创建大量接口感到不安,这些接口的唯一目的是支持单元测试模拟。想法?