4

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

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 创建一个部分模拟?

4

0 回答 0