C#中“Mocking”一词的含义是什么?

时间:2013-07-10 10:40:10

标签: c# logic term

嘲笑一词在{​​{1}}的上下文中意味着什么?

2 个答案:

答案 0 :(得分:4)

在单元测试的上下文中,mocking提供了一个类型的虚假实现,您的代码可以与之交互。

请参阅http://en.wikipedia.org/wiki/Mock_object

Roy Osherove的书"The Art of Unit Testing"有很好的解释,如果您开始使用C#进行单元测试,我会推荐它。

模拟与存根的不同之处在于它验证了交互与您测试的代码。存根只是返回预定义值以帮助单元测试代码。

答案 1 :(得分:1)

请参阅!!我会给你一些让你理解的简单例子。

  1. 假设课程中有一个方法说ParseEBCDICFileToASCII(strig fileName),此文件也验证文件是否存在File.Exist()。现在,您正在为解析逻辑编写单元测试,并且您在ParseEBCDICFileToASCII方法中提供了一些文件路径,那么此方法将始终失败或返回,因为您提供的文件实际上不存在。 在这种情况下,您将以这样的方式模拟File.Exist(),只要这将调用您将返回假/模拟值。因此,在单元测试中,File.Exist的逻辑将始终返回模拟值。

  2. 还有一些情况是,您为任何Web服务编写客户端应用程序测试,然后进行单元测试,您不需要实际的Web服务。您可以编写一个模拟的Web服务,您的实际逻辑将始终按模拟服务返回模拟值。

  3. 因此,模仿是一种返回虚假值的方法,以便您可以更专注于测试您的实际逻辑......