C# 业务功能-RhinoMocks IEnumerable静态方法模拟

C# 业务功能-RhinoMocks IEnumerable静态方法模拟,c#,ienumerable,rhino-mocks,static-methods,C#,Ienumerable,Rhino Mocks,Static Methods,我希望这只是一个基本的问题,在规定的范围内。我一直在从一些有经验的“自动化测试人员”那里寻找一些信息,他们以前就已经实践过这一点。模拟静态IEnumerable方法的业务功能是什么?嘲笑他们有什么好处吗?它只是创建混乱的代码/测试吗?有人怎么知道为IEnumerable方法之一编写测试是值得的?我读了很多关于完成模拟和测试任务的方法,只是好奇它有什么用途。系统方法不是工作得很好,不需要测试吗 如果我的问题是“绿色”的,请原谅。我只是想对测试有更深的理解/知识基础。模拟系统IEnumerable方

我希望这只是一个基本的问题,在规定的范围内。我一直在从一些有经验的“自动化测试人员”那里寻找一些信息,他们以前就已经实践过这一点。模拟静态IEnumerable方法的业务功能是什么?嘲笑他们有什么好处吗?它只是创建混乱的代码/测试吗?有人怎么知道为IEnumerable方法之一编写测试是值得的?我读了很多关于完成模拟和测试任务的方法,只是好奇它有什么用途。系统方法不是工作得很好,不需要测试吗


如果我的问题是“绿色”的,请原谅。我只是想对测试有更深的理解/知识基础。

模拟系统IEnumerable方法没有业务功能。但是,要模拟静态方法,您应该创建一个调用静态方法的虚拟类。然后模拟虚拟类,允许自己“访问”测试中的静态方法

您是否在谈论Linq扩展方法(
Where
Select
OrderBy
,等等)?我当然看不出有什么理由去模仿这些,而且,你无论如何也不能用Rhinomock(c.f.)来模仿静态函数,即使你愿意。我是这样的,这就是我想的,我只是没有任何“经验丰富的/资深的”输入来支持它,并把它钉在我的脑袋里。还有一种模拟静态函数的方法——我怎么知道要模拟哪些IEnumerable方法?目前,Linq extendion方法的部分代码覆盖率(我相信)。如果你能提供更多的答案,我将非常乐意提供更多的细节。我是新来的,所以我试图扩展我关于自动化测试的知识库。你链接到的帖子(与我链接到的帖子相同)上的公认答案非常清楚地表明Rhinomock不能模拟静态函数。TypeMock可以做到,微软自己的Fakes框架也可以做到,但Rhinomock不行。别担心!没有什么能阻止您为Linq扩展方法创建包装,然后模仿它们,但这并没有多大意义。模拟背后的思想是隔离您正在测试的代码,这样其他函数/类/模块中的问题不会间接导致您自己的代码中的测试失败。一般来说,这是一个好主意,但有时您必须相信您所依赖的代码工作正常,而Linq就是其中之一。在我看来,包装Linq调用只是为了模仿它们是一种极大的时间浪费。另外,作为回应:“目前在Linq extendion方法上有部分代码覆盖(我相信)。”-您的工作是测试您自己的代码,而不是其他人的代码。微软(可能)也有自己的Linq扩展方法单元测试,因为是他们编写的。您应该专注于编写测试您所编写的代码的测试。