亲爱的MBA智库百科用户:


过去的17年,百科频道一直以免费公益的形式为大家提供知识服务,这是我们团队的荣幸和骄傲。 然而,在目前越来越严峻的经营挑战下,单纯依靠不断增加广告位来维持网站运营支出,必然会越来越影响您的使用体验,这也与我们的初衷背道而驰。 因此,经过审慎地考虑,我们决定推出VIP会员收费制度,以便为您提供更好的服务和更优质的内容。


MBA智库百科VIP会员,您的权益将包括: 1、无广告阅读; 2、免验证复制。


当然,更重要的是长期以来您对百科频道的支持。诚邀您加入MBA智库百科VIP会员,共渡难关,共同见证彼此的成长和进步!



MBA智库百科项目组
2023年8月10日
百科VIP
未登录
无广告阅读
免验证复制
1年VIP
¥ 9.9
支付方式:
微信支付
支付宝
PayPal
购买数量:
1
应付金额:
9.9
汇率换算:
1.32
美元(USD)
  • 美元(USD)
  • 加元(CAD)
  • 日元(JPY)
  • 英镑(GBP)
  • 欧元(EUR)
  • 澳元(AUD)
  • 新台币(TWD)
  • 港元(HKD)
  • 新加坡(SGD)
  • 菲律宾(PHP)
  • 泰铢(THB)

按当月汇率换算,

包含手续费

打开手机微信 扫一扫继续付款
立即开通
PayPal支付后,可能会遇到VIP权益未及时开通的情况,请您耐心等待,或者联系百科微信客服:mbalib888。
温馨提示:当无法进去支付页面时,可刷新后重试或更换浏览器
开通百科会员即视为同意《MBA智库·百科会员服务规则》

支付成功

全球专业中文经管百科,由121,994位网友共同编写而成,共计436,064个条目

模拟对象

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

(重定向自模仿对象)

模拟对象(mock object)

目录

[隐藏]

什么是模拟对象

  在面向对象程序设计中,模拟对象也译作模仿对象。是以可控的方式模拟真实对象行为的假的对象。程序员通常创造模拟对象来测试其他对象的行为,很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为。

模拟对象的必要性

  在单元测试中,模拟对象可以模拟复杂的、真实的(非模拟)对象的行为, 如果真实的对象无法放入单元测试中,使用模拟对象就很有帮助。

在下面的情形,可能需要使用模拟对象来代替真实对象:

  • 真实对象的行为是不确定的(例如,当前的时间或当前的温度);
  • 真实对象很难搭建起来;
  • 真实对象的行为很难触发(例如,网络错误);
  • 真实对象速度很慢(例如,一个完整的数据库,在测试之前可能需要初始化);
  • 真实的对象是用户界面,或包括用户界面在内;
  • 真实的对象使用了回调机制;
  • 真实对象可能还不存在;
  • 真实对象可能包含不能用作测试(而不是为实际工作)的信息和方法。

  例如,一个可能会在特定的时间响铃的闹钟程序可能需要外部世界的当前时间。要测试这一点,测试一直要等到闹铃时间才知道闹钟程序是否正确地响铃。如果使用一个模拟对象替代真实的对象,可以变成提供一个闹铃时间(不管是否实际时间),这样就可以隔离地测试闹钟程序。

局限性

  模拟对象的使用可能会将单元测试与被测代码的实现耦合得很紧。例如,许多模拟对象框架允许开发人员指定模拟对象上方法被调用的次序和调用的次数,这样,测试通过后对代码进行重构,即使方法依然遵守以前实现的契约,也可能会造成测试失败。这说明单元测试应当测试方法的外部行为,而非其内部实现。在单元测试测试用例中过度使用模拟对象可能导致随着系统的发展,不断进行的重构会造成维护测试本身的工作量出现显著的增长。在发展过程中,这种测试的不正确地维护可能会漏报错误,而在使用真实对象进行的测试中会捕捉到。相反,与设置好整个真实对象相比,简单地模拟一个方法可能需要更少的配置,因此减少了需要的维护工作。

  模拟对象必须要准确地建模它们要模拟的对象的行为,然而,如果要模拟的对象来自另一个开发人员或项目,或者如果还没有开发出来,准确的建模是很难做到。如果没有正确建模行为,那么可能会单元测试记录通过,而真正运行时,在同样条件下可能会造成测试失败。

本条目对我有帮助1
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您认为本条目还有待完善,需要补充新内容或修改错误内容,请编辑条目投诉举报

本条目由以下用户参与贡献

苏青荇.

评论(共0条)

提示:评论内容为网友针对条目"模拟对象"展开的讨论,与本站观点立场无关。

发表评论请文明上网,理性发言并遵守有关规定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP
告MBA智库百科用户的一封信
亲爱的MBA智库百科用户: 过去的17年,百科频道一直以免费公益的形式为大家提供知识服务,这是我们团队的荣幸和骄傲。 然而,在目前越来越严峻的经营挑战下,单纯依靠不断增加广告位来维持网站运营支出,必然会越来越影响您的使用体验,这也与我们的初衷背道而驰。 因此,经过审慎地考虑,我们决定推出VIP会员收费制度,以便为您提供更好的服务和更优质的内容。 MBA智库百科VIP会员(9.9元 / 年,点击开通),您的权益将包括: 1、无广告阅读; 2、免验证复制。 当然,更重要的是长期以来您对百科频道的支持。诚邀您加入MBA智库百科VIP会员,共渡难关,共同见证彼此的成长和进步!
MBA智库百科项目组
2023年8月10日

闽公网安备 35020302032707号

添加收藏

    新建收藏夹

    编辑收藏夹

    20