我已经阅读了有关该主题的几篇文章和帖子,但许多文章和帖子自相矛盾,并没有说得很清楚,只是简单地提出了一个无法解释差异的简单定义。我已经知道有 5 种类型的测试替身,但最相似的是模拟和存根。
我不能放任何标签#test
,#test-doubles
所以我放了我发现的唯一一个涉及某些测试的标签。
我已经阅读了有关该主题的几篇文章和帖子,但许多文章和帖子自相矛盾,并没有说得很清楚,只是简单地提出了一个无法解释差异的简单定义。我已经知道有 5 种类型的测试替身,但最相似的是模拟和存根。
我不能放任何标签#test
,#test-doubles
所以我放了我发现的唯一一个涉及某些测试的标签。
这不容易理解,更不用说解释了,这就是为什么有这么多网站试图澄清这个问题的原因。我会尽量简单地向你解释,就像我解释它一样(这很重要,因为不是每个人都以同样的方式解释它):
Mock:用于检查流量。 存根:用于检查功能。
也就是说,如果我有兴趣知道,通过调用某个函数,例如执行对另一个函数的调用,而不关心(至少不是太多)结果,我将使用 Mock 。
相反,如果我有兴趣知道调用某个函数会返回某个结果,而不关心(至少目前或太多)是否必须调用其他函数来实现,我将使用 Stub它。
考虑到您似乎对测试足够了解,希望此澄清对您有用。干杯!