我刚刚阅读了关于模拟对象的维基百科文章,但我仍然不完全清楚它们的目的。当实际对象过于复杂或不可预测时,它们似乎是由测试框架创建的对象(您知道 100% 确定模拟对象的值是什么,因为您完全控制它们)。
但是,我的印象是所有测试都是使用已知值的对象完成的,所以我一定遗漏了一些东西。例如,在一个课程项目中,我们的任务是使用日历应用程序。我们的测试套件由我们确切知道它们是什么的事件对象组成,因此我们可以测试多个事件对象、各种子系统和用户界面之间的交互。我猜这些是模拟对象,但我不知道你为什么不这样做,因为没有已知值的对象,你就无法测试系统。