c# - 模拟问题:无法实例化类的代理。找不到无参数构造函数
问题描述
我正在尝试为无法更改实现的类编写单元测试。以下是我在编写测试时看到的错误。
模拟单位:
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,Culture=neutral,PublicKeyToken=无效的]]。 找不到无参数构造函数。
解决方案
推荐阅读
- javascript - 如何在 postgres 中选择模式
- java - AspectJ(特别是 Mojo 的 Maven 插件)是否执行优化?
- julia - 朱莉娅推!- 尝试收集数据时不是正确的命令
- r - R:使用替换过滤和改变数据框
- javascript - 在用户离开页面js之前打开对话框
- aem - 如果 pathbrowser 值,如何在末尾添加 .html?
- ios - 有什么方法可以确定 AVPlayer 使用的是什么编解码器?
- python - 如何提高 Google Cloud VM 上的网络效率
- reactjs - 使用上下文值作为初始状态值 - 反应钩子
- python - 在基于 Flask 的网站上显示不断变化的 Python 变量