C#中“模拟”一词的含义是啥? [关闭]

Posted

技术标签:

【中文标题】C#中“模拟”一词的含义是啥? [关闭]【英文标题】:What is the meaning of the term "Mocking" in C#? [closed]C#中“模拟”一词的含义是什么? [关闭] 【发布时间】:2013-07-08 06:10:39 【问题描述】:

C#/WPF 的上下文中,mocking 一词是什么意思?

【问题讨论】:

真的吗?谷歌疼吗? bit.ly/13LJxUe 为什么不直接问他们? 我知道文本的含义是什么。我询问了使用 mock 在 c# 中测试模拟的示例。如果我表达得不好,我很抱歉。 你没有要求示例... 请尝试一下,并搜索一些示例。周围会有很多。一旦你遇到了一些令人困惑的具体问题,你可以提出一个更具体的问题。 【参考方案1】:

在单元测试的上下文中,模拟是提供一种类型的假实现,您的被测代码与之交互。

见http://en.wikipedia.org/wiki/Mock_object

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

模拟与存根的不同之处在于,它会验证与您的测试代码的交互。存根仅返回预定义的值以帮助对代码进行单元测试。

【讨论】:

【参考方案2】:

看!!我会给你一些简单的例子,让你理解。

    假设类中有一个方法ParseEBCDICFileToASCII(strig fileName),并且该文件还验证文件是否存在File.Exist()。现在,您正在编写用于解析逻辑的单元测试,并且您在 ParseEBCDICFileToASCII 方法中提供了一些文件路径,那么此方法将始终失败或返回,因为您提供的任何文件在现实中都不存在。 在这种情况下,您将模拟File.Exist(),这样,无论何时调用,您都将返回一个假/模拟值。所以在单元测试中,File.Exist 的逻辑将始终返回模拟值。

    在某些情况下,您正在为任何 Web 服务的客户端应用程序编写测试,而对于单元测试,您不需要实际的 Web 服务。您可以编写一个模拟的 Web 服务,您的实际逻辑将始终命中模拟服务返回模拟值。

所以 mocking 是一种返回假值的方法,这样你就可以更专注于测试你的实际逻辑......

【讨论】:

以上是关于C#中“模拟”一词的含义是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

与记忆相关的“竞技场”一词的含义是啥?

大学软件工程 里 对象 这一词的名词解释是啥?

“亚里斯多德”一词的由来是啥?

在计算机科学环境中,“语义”一词是啥意思?

免费商店的“堆”一词的由来是啥?

可嵌入的 GraphDB? [关闭]