C# · 12月 31, 2021

c# – 模拟方法的结果

我试图找到一种方法来伪造另一种方法中调用的方法的结果.

我有一个“LoadData”方法,它调用一个单独的帮助器来获取一些数据,然后它会转换它(我有兴趣测试转换的结果).

所以我有这样的代码:

public class MyClass(){ public void LoadData(){ SomeProperty = Helper.GetSomeData(); } public object SomeProperty {get;set;}}

我想从Helper.GetSomeData()方法得到一个已知的结果.我可以使用一个嘲笑的框架(我对Rhino Mocks的经验相当有限,但对任何事情都是开放的)来强制预期的结果?如果是这样,怎么办?

*编辑 – 是的,如预期的,我无法实现我想要的黑客,我必须制定一个更好的方式来设置数据.

解决方法 据我所知,您应该为Helper对象创建接口或基本抽象类.使用Rhino Mocks,您可以返回所需的值.

或者,您可以为LoadData添加一个重载,它接受通常从Helper对象中检索的数据作为参数.这可能更容易.