在上下文中,嘲笑一词是什么意思C#/WPF
?
2 回答
在单元测试的上下文中,模拟提供了一种类型的假实现,您的被测代码与之交互。
见http://en.wikipedia.org/wiki/Mock_object
Roy Osherove的“单元测试的艺术”一书有很好的解释,如果你开始使用 C# 进行单元测试,我推荐它
模拟与存根的不同之处在于它验证与被测代码的交互。存根仅返回预定义的值以帮助对代码进行单元测试。
看!!我会给你一些简单的例子,让你理解。
假设类 say 中有一个方法,
ParseEBCDICFileToASCII(strig fileName)
并且该文件还验证文件是否存在File.Exist()
。现在,您正在编写用于解析逻辑的单元测试,并且您在ParseEBCDICFileToASCII
方法中提供了一些文件路径,那么此方法将始终失败或返回,因为您提供的任何文件实际上都不存在。在这种情况下,您将以File.Exist()
这样的方式模拟,无论何时调用,您都将返回一个假/模拟值。所以在单元测试中,你的逻辑File.Exist
总是会返回模拟值。在某些情况下,您正在为任何 Web 服务的客户端应用程序编写测试,然后对于单元测试,您不需要实际的 Web 服务。您可以编写一个模拟的 Web 服务,并且您的实际逻辑将始终针对模拟服务返回模拟值。
所以模拟是一种返回假值的方法,这样你就可以更专注于测试你的实际逻辑......