带构造函数参数的Moq

本文关键字:Moq 参数 构造函数 | 更新日期: 2023-09-27 18:10:26

我有一个如下所示的工厂:

public IFoo GetFoo(IFile file)
{
  return _kernel.Get<IFoo>(new ConstructorArgument("file", file));
}

它工作得很好,直到我使用Moq模拟IFoo。在模拟中,没有名为file的构造函数参数,并且我得到一个Ninject.ActivationException。

我该如何解决这个问题?

带构造函数参数的Moq

您应该在测试期间模拟工厂。希望"GetFoo"方法是工厂接口的一部分。模拟工厂,然后您可以设置工厂以返回您想要的任何IFoo(测试IFoo或模拟IFoo)。