单元测试 – 单元测试Moq中的模拟/存根定义

在单元测试中给出的任何阅读或建议一直提示了Mock和Stub的定义有明显区别.我目前对这些定义的理解如下

Mock: A fake which will be used in
your test to make a final assertion

Stub: A fake which will be used in
your test to isolate a dependency but
not be asserted

然而,Moq似乎只允许创建Mocks.框架中的Stub命名空间似乎被推荐使用了Mock.SetupXXX.

我在这方面的理解中缺少一些东西吗?或者有一个普遍的理解,一个模拟对象可以被真正地用作没有更多的一个存根?

也许我很讽刺,只是我一直在编程中发现语言非常严格,更喜欢让我的使用正确,特别是当其他开发人员可能会接管一个项目时.

最佳答案
根据Moq project site,Moq提供:

Granular control over mock behavior with a simple 07001 enumeration (no need to learn what’s the theoretical difference between a mock, a stub, a fake, a dynamic mock, etc.)

嘲笑,短柄等缺乏区别是一种蓄意的设计决策;一个我喜欢的设计决定.如果我需要一个真正的模拟,我打电话给Verify().如果没有,那么没有Verify().我喜欢简单,我没有发现自己缺少模拟和存根之间的区别.

转载注明原文:单元测试 – 单元测试Moq中的模拟/存根定义 - 代码日志