posman mocks

jmock作者撰写的有关模拟框架的优秀论文 。 本文写于18年前的2004年,但其中有许多构建可维护软件系统的技巧。


在这篇文章中,我将重点介绍本文中的关键思想,但建议您阅读本文以获取有关模拟和编程实践的重要思想。

模拟对象是测试驱动开发的扩展。

当我们开始考虑首先编写测试时,模拟对象可能会很有用,因为它可以模拟仍未开发的零件。 认为是构建原型系统的更好方法。

模拟对象作为一种将测试与第三方库隔离的技术不太有趣。

这是关于模拟的普遍误解,我已经使用模拟看到/编写了许多代码。 这确实是来自模拟框架作者的大开眼界的事实。

写作测试是设计活动

确实如此,但是作为工程师,我们花了很多时间放弃编写测试的最佳部分。 由测试驱动的设计还提供了有关实际问题的见解,并导致了
发明,因为开发人员必须认真思考问题并避免过度设计

耦合与内聚

当我们开始布线测试时,它为我们做出的耦合和内聚决策提供了很好的思路。 好的软件将具有低耦合和高凝聚力。 这也导致任务的功能分解。

井设计系统的另一个好处是它没有Law_of_Demeter ,这是不经意间引入系统的常见问题之一。 许多微服务都遭受这种反模式的困扰。

需要驱动的发展

由于模拟需要显式的代码/设置,因此它来自测试用例的需求/需求。 您不必根据预测会在6个月后需要某些功能进行编码,因此可以专注于客户需求。 测试结果产生的所有接口都狭窄且适合目的。 这种类型的开发也称为自顶向下开发。

纸报价

“”” 我们发现需求驱动型开发有助于我们专注于手头的需求并开发一致的对象。 “””

按组成编程

测试优先方法允许您考虑组件的可组合性,每件事都作为构造函数参数或方法参数传递。

一旦使用这样的设计原则构建系统,就很容易测试/更换系统的一部分。 模拟对象允许考虑可组合性,以便模拟系统的某些部分。

模拟测试变得太复杂

论文中的一项观察谈到了模拟测试的复杂性。 如果系统设计较弱,那么模拟将很困难且很复杂。 它确实放大了问题,例如耦合,关注点分离。 我认为这是最好的使用模拟对象来获取设计反馈并像激励器一样使用它来使系统变得更好的方法。

不要在模拟中添加行为

根据论文,我们绝不应在存根中添加行为,以防万一如果您有这样做的诱惑,那么这是责任错位的迹象。

如果您喜欢该职位,那么您可以在Twitter上关注我,以获取有关我撰写的随机内容的通知。

翻译自: https://www.javacodegeeks.com/2019/08/need-driven-software-development-using-mocks.html

posman mocks

posman mocks_使用Mocks进行需求驱动的软件开发相关推荐

  1. 使用Mocks进行需求驱动的软件开发

    jmock作者撰写的有关模拟框架的优秀论文 . 本文写于18年前的2004年,但其中有许多构建可维护软件系统的技巧. 在这篇文章中,我将重点介绍本文中的关键思想,但建议您阅读本文,以获取有关模拟和编程 ...

  2. 软件开发作为一种价值领域的研究

    免责声明 本文是我对软件开发本质的个人看法.这并不是要成为科学论文,因此,许多陈述是故意加粗和直接的,以使文章简短.我尽力根据自己的观察和可用的资料来介绍软件开发的性质,但是我不是商业理论家.科学哲学 ...

  3. 测试自动化金字塔在软件开发中是如何使用的?

    测试自动化金字塔,是一个指南,指导您进行什么类型的测试以及每种测试的数量.测试自动化金字塔有助于创建更高效的测试,并导致向客户发布更可靠的软件. 测试自动化金字塔的好处 测试自动化的大部分好处显而易见 ...

  4. 基本软件开发模型:瀑布模型、V型模型、迭代模型、增量模型、螺旋模型、大爆炸模型、敏捷模型、原型模型、W模型 特点分析与总结

    瀑布模型 在瀑布模型中,开发过程是线性的.任务和阶段按严格顺序一个接一个地完成.进度平稳地向下流动,就像瀑布上的水一样. 将软件生命周期划分为制定计划.需求分析.软件设计.程序编写.软件测试和运行维护 ...

  5. 软件开发中 前台、中台、后台英文_一个微服务业务系统的中台构建之路

    中台是近两年软件开发领域的热点话题,相关的文章也成为了各个技术社区和媒体争相报道的网红内容.作为企业支撑业务开发的核心系统,中台的重要性不言而喻,很多企业也开始尝试中台的构建和落地工作.Biz-UI ...

  6. 软件工程:传统软件工程 vs 敏捷软件开发

    转自我的博客园文章: http://www.cnblogs.com/katniss-smile/p/5982643.html 首先给出软件工程和敏捷软件开发的定义: 软件工程(Software Eng ...

  7. 面向对象的软件开发 (转)

    面向对象的软件开发 (转)[@more@] 面向对象的软件开发 Linda M. Northrop (本文转载自软件工程专家网www.21cmm.com,不代表gigix观点) 1 历史回顾 针对日趋 ...

  8. 大数据开发和软件开发哪个前景好?

    大数据开发和软件开发哪个前景好?大数据开发学习有难度,零基础入门要先学习Java语言打基础,然后进入大数据技术体系的学习,学习Hadoop.Spark.Storm等知识.软件开发工程师根据不同的学科从 ...

  9. 【软件工程】RUP与软件开发5大模型

    软件开发的5大模型 1.瀑布模型:按照人的思维一步一步的开发下去,如果需求分析得当,每个阶段顺利,结果还不错! 2.快速原型模型:后来人们发现,自己不可能一下子就把所有的需求搞清楚,总是在开发的过程中 ...

最新文章

  1. 区别聚焦索引和非聚集索引
  2. html js什么作用,html錨點的作用和js選項卡錨點跳轉的使用
  3. python识别12306验证码_Python3.4实现的12306最新验证码识别
  4. Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview
  5. el-jy-ii计算机组成原理实验报告,EL-JY-II型计算机组成原理实验系统
  6. Google Jump Consistent Hash 一致性哈希算法
  7. Django 模板层
  8. java创建内部面板类_Java图形与文本(18)
  9. sap销售发货的流程_SAP系统销售流程
  10. 基于微信小程序校园商铺系统获取(微信小程序毕业设计)
  11. 网课答案公众号查询方法
  12. 洛谷P1067多项式输出
  13. 第二讲:线性结构-Go语言实现
  14. 音乐播放器(vip在线听下载等等)~~正常运行
  15. 注释转换,较详细。新手上路,请多关照
  16. python翻译程序-Python:谷歌翻译20次的程序如何实现?
  17. SpringBoot项目No qualifying bean of type ‘×××Mapper‘ available:的错误解决
  18. hdoj 2036 改革春风吹满地 (多边形面积)
  19. 笨方法学python练习7.更多打印
  20. 用友nc系统无法连接到服务器,用友U8其他登陆时提示“系统错误无法连接服务器”...

热门文章

  1. 【每日一题】7月9日题目 Color
  2. 世界五星级大厨经典菜品集
  3. 牛客网CSP-S提高组赛前集训营1题解(仓鼠的石子游戏 [博弈论] + 乃爱与城市的拥挤程度 [树上DP] + 小w的魔术扑克[dfs + 离线])
  4. 模板:多项式乘法(FFTNTT)
  5. 模板:2-SAT问题
  6. 不止代码:友好城市(动态规划)
  7. P4542-[ZJOI2011]营救皮卡丘【费用流,Floyd】
  8. 2021“MINIEYE杯”中国大学生算法设计超级联赛(2)I love exam(背包)
  9. codeforces1451 D. Circle Game
  10. 初一模拟赛总结(2019.6.1)