使用MockingKernel对抽象类进行部分模拟?

时间:2013-07-01 16:10:31

标签: unit-testing ninject moq ninject-extensions ninject-mockingkernel

我有一个带依赖关系的抽象类,我想进行单元测试:

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。

看看the source,看来MockingKernel会在创建时从不将参数传递给模拟器。

有没有办法用MockingKernel创建部分模拟?

0 个答案:

没有答案