Jam*_*xon 16 c# nunit unit-testing moq
我正在尝试Setup返回对扩展方法的调用并且正在接收:
SetUp : System.NotSupportedException : Expression references a method that does not belong to the mocked object: m => m.Cache.GetOrStore<String>("CacheKey", () => "Foo", 900)
GetOrStore在Cache对象上引用该方法似乎存在问题,这是一种扩展方法.
代码编译但测试失败并出现此异常.
如何设置这样的扩展方法的结果需要做什么?
Ufu*_*arı 26
扩展方法不能像实例方法一样进行模拟,因为它们未在模拟类型上定义.它们在其他静态类中定义.由于您不能简单地模拟那些,您应该模拟扩展方法使用的所有方法/属性.
这是扩展方法如何将代码紧密耦合到其他类的示例.无论你做什么,你的班级都依赖于那些静态方法.你无法模仿并单独测试它.我建议重构你的代码,如果里面有任何逻辑,将这些方法移动到他们自己的类中.
| 归档时间: |
|
| 查看次数: |
14794 次 |
| 最近记录: |