我有一个带有依赖项的抽象类,我想对其进行单元测试:
public abstract class BaseClass
{
public BaseClass(IDependency dep) { ... }
public virtual void TestMethod() { ... }
...
}
我想使用 NInject 的MockingKernel测试这个类,所以我鼓起了以下内容:
using (var k = new MoqMockingKernel())
{
k.Bind<IDependency>().ToMock();
k.Bind<BaseClass>().ToMock();
k.GetMock<BaseClass>().CallBase = true;
var sut = k.Get<BaseClass>();
sut.TestMethod();
k.GetMock<BaseClass>().Verify(...);
}
但我遇到了问题。它正在寻找一个无参数的构造函数来创建部分 BaseClass 模拟,而不是传入模拟的 IDependency。
查看源代码,MockingKernel 似乎永远不会在创建时将参数传递给模拟。
有没有办法用 MockingKernel 创建一个部分模拟?