模拟问题:无法实例化类的代理。找不到无参数的构造函数

时间:2018-11-05 01:57:02

标签: c# .net unit-testing mocking moq

我正在尝试为无法更改实现的类编写单元测试。 下面是我在编写测试时看到的错误。

模拟单元:

public class ClassA : IInterface
{
    public readonly ClassB _classB = null;

    public ClassA(ClassB classB)
    {
        _classB = classB;
    }

    private ClassP<ClassB, ClassC> _classP;

    public virtual ClassP<ClassB, ClassC> TargetToMock => _classP ?? (_classP = new ClassP<ClassB, ClassC>(_classB));
}

模拟:

MockClassB = new Mock<ClassB>();

MockClassA = new Mock<ClassA>(MockClassB.Object);

设置:

MockClassA
    .Setup(s => s.TargetToMock.SomeMethod(argument1, argument2))
    .Returns(SomeResponseObject);

例外:

  

Castle.DynamicProxy.InvalidProxyConstructorArgumentsException:可以   不实例化类的代理:ClassP`2 [[ClassB,Version = 1.0.0.0,   Culture = neutral,PublicKeyToken = null],[ClassC,Version = 1.0.0.0,   文化=中立,PublicKeyToken =空]]。   找不到无参数的构造函数。

0 个答案:

没有答案