如何在另一个方法中忽略方法的调用?

时间:2018-02-07 17:29:49

标签: c# unit-testing rhino-mocks

我在C#中使用Rhinomock,我想忽略一个方法内的调用。让我们看看,有谁知道如何忽略(或跳过)以下代码示例中的方法MyMethodToIgnore?这与Rhinomock有关吗?

public void MyMethod()
{
 string sample = string.Empty;

 var n = MyMethodToIgnore(sample);

 // Rest of code...

}

让我们推断出MyMethodToIgnore会做并返回一些东西。

1 个答案:

答案 0 :(得分:0)

根据您提供的代码示例,不!

您提到的模拟库是提供虚假数据类,因此您的测试用例不依赖于例如的状态和可用性。一个数据库。不与程序流交互。

  

它的目的是通过允许开发人员创建自定义对象的模拟实现并使用单元测试验证交互来简化测试。 Source

因此,如果您希望测试模拟MyMethod的行为,则需要更改源代码以使var纯净(因此它不依赖于中间结果。

一种可能性是在类中添加另一个方法,如下所示:(我正在使用dynamicpublic void MyMethod() { var n = MyMethodToIgnore(sample); MyTestedMethod(n); } public void MyTestedMethod(dynamic n) { // do the calculation } ,因为您尚未提供任何实现细节。)

MyMethodToIgnore

这样,您可以覆盖/模拟MyTestedMethod的行为,并使用模拟结果来测试session_save_path