C# · 12月 26, 2021

c# – 如何用Rhino Mock模拟扩展方法?

我使用我需要的一些扩展方法扩展了类型为IDataReader的对象.现在的问题是当我试图模拟IDataReader时,扩展方法不包括在模拟中,所以当Expect.Call(reader.ExtensionMethod())行返回(someValue)到达ExtensionMethod是不执行的我想要!我想要这个调用是记录的,当扩展方法从别的地方调用时,我希望它返回someValue.

有人知道如何解决这个问题吗?

解决方法 披露:我为Telerik工作.

扩展方法实际上是隐藏的实例方法的静态方法. RhinoMock不能模拟静态方法,没有办法可以做到这一点,除非你使用另一个使用分析器的模拟库.

这样一个图书馆是JustMock by Telerik.