当前位置: 首页 > news >正文

郑州网站推广公司排名开发公司大厅售后

郑州网站推广公司排名,开发公司大厅售后,建立自己的公司网站,网站如何跳转tdd 单元测试最近#xff0c;我一直在写与自动测试有关的更高级的概念#xff08;主要与Spock有关#xff09;。 但是#xff0c;在进行测试培训时#xff0c;我清楚地看到#xff0c;通常对特定工具的知识并不是主要问题。 即使使用Spock#xff0c;也可以编写肿且难以… tdd 单元测试 最近我一直在写与自动测试有关的更高级的概念主要与Spock有关。 但是在进行测试培训时我清楚地看到通常对特定工具的知识并不是主要问题。 即使使用Spock也可以编写肿且难以维护的测试从而破坏或不了解与编写单元测试有关的良好实践。 因此我决定写一些更基本的东西来促进它们并且在指导经验不足的同事时准备使用一些参考材料。 介绍 编写良好的单元测试应满足几个要求这是整个系列的主题。 在这篇博客文章中我想提出一个相当成熟的概念即将单元测试划分为具有严格定义的功能的3个单独的块依次是行为驱动开发的子集。 单元测试通常集中于测试给定单元通常是一个给定类的某些特定行为。 与通过UI执行的验收测试相反在每个测试中都将存根/模拟作为其协作者从零开始设置一个要测试的类测试中的类比较便宜快速。 因此性能应该不是问题。 样品测试 为了演示规则我将使用一个小示例。 ShipDictionary是一个类提供根据特定条件按名称的一部分生产年份等搜索太空船的功能。 该词典由不同的船舶索引在役退役在生产等中的船舶提供动力。 在那个特定的测试中它被测试了按其名称的一部分搜索飞船的能力。 private static final String ENTERPRISE_D USS Enterprise (NCC-1701-D);Test public void shouldFindOwnShipByName() { //given ShipDatabase shipDatabase new ShipDatabase(ownShipIndex, enemyShipIndex); given(ownShipIndex.findByName(Enterprise)).willReturn(singletonList(ENTERPRISE_D)); //when List foundShips shipDatabase.findByName(Enterprise); //then assertThat(foundShips).contains(ENTERPRISE_D); }给定时间 测试驱动开发方法和行为驱动开发方法中都存在的良好习惯是“先验”知识它将在特定测试用例中进行测试认定。 可以以更正式的方式例如用Cucumber/小Cucumber编写的用于验收测试的方案或以自由形式例如特别注意的要点或只是下一步应该做什么的想法来完成。 有了这些知识就很容易确定整个测试将组成的三个关键部分分开的部分。 给定–准备 在单元测试的第一部分称为given 中需要创建一个实际对象实例在该对象实例上将执行测试的操作。 在有重点的单元测试中仅放置一类要测试的逻辑。 另外执行测试所需的其他对象称为协作者应初始化为存根/模拟并适当存根如果需要。 还必须将所有协作者注入到要测试的对象中该对象通常与该对象创建结合在一起因为构造函数注入应该是依赖注入的首选技术。 //given ShipDatabase shipDatabase new ShipDatabase(ownShipIndex, enemyShipIndex); given(ownShipIndex.findByName(Enterprise)).willReturn(singletonList(ENTERPRISE_D));何时–执行 在when部分中将执行要测试的操作。 在我们的情况下这是一个搜索请求然后将结果存储在变量中以供进一步声明。 //when List foundShips shipDatabase.findByName(Enterprise); 在大多数情况下在该部分中仅执行一项操作是一件好事。 更多的元素可能表明尝试测试多个操作可能可以分为多个测试。 然后–断言 -最后一节的责任 then -主要是先前接收到的结果的断言。 它应该等于期望值。 //then assertThat(foundShips).contains(ENTERPRISE_D); 此外可能有必要对声明的模拟执行方法执行的验证。 这不应该是一种常见的做法因为在大多数情况下对接收值的声明足以确认所测试的代码能够按预期工作根据设置的边界。 但是特别是对于测试void方法需要验证是否已使用预期参数执行了特定方法。 AAA aka 3A –一种替代语法 正如我已经提到的BDD是一个更广泛的概念它对于编写具有预先定义的需求通常是非技术形式的功能/验收测试特别方便。 一种替代的测试划分语法对于各节而言含义非常相似是“ 配置行为声明”通常缩写为AAA或3A。 如果您根本不使用BDD并且三个字母比GWT更容易记住那么使用它来创建相同的高质量单元测试就很好。 调整与优化 将实用工具和方法学与持续进行的技能获取过程也称为Dreyfus模型 进行匹配的过程已在《 实用思维与学习重构您的湿软件 》一书中进行了很好的描述。 当然在许多情况下使用given节移至setup/init/before节或内联初始化的测试的简化变体可能很方便。 同样可以适用于when和then部分其可以被合并在一起成expect部分特别是在参数化测试。 具有编写单元测试的经验和流利性使用速记和优化尤其是测试一些非平凡的案例是完全有效的。 只要整个团队都了解约定并且能够记住有关编写好的单元测试的基本假设。 摘要 根据我在软件开发方面的经验以及作为一名培训师我清楚地看到将单元测试划分为多个部分可以使它们更短更易理解尤其是团队中经验不足的人员。 与明确找出并立即将所有内容写入测试中相比用明确定义的责任来填充3个部分更容易。 最后特别是对于仅阅读本文第一部分和最后部分的人们此处遵循以下简明规则 given –测试中的对象初始化存根/模拟的创建存根和注入 when –在给定测试中进行测试的操作 then –收到结果声明模拟验证如果需要 PS最好在IDE中设置一个测试模板以保护编写每个测试所需的许多击键。 PSS您发现本文很有用您可以让我知道以鼓励我将来写更多有关单元测试的基础知识。 图片来源Tomas SobekOpenclipart https //openclipart.org/detail/242959/old-scroll 自我提升 。 您想快速有效地提高您和您的团队的测试技能以及对Spock / JUnit / Mockito / AssertJ的了解吗 我进行了浓缩单元 测试培训 您可能会觉得有用。 翻译自: https://www.javacodegeeks.com/2017/05/importance-given-unit-tests-tdd.htmltdd 单元测试
http://www.yutouwan.com/news/140142/

相关文章:

  • 后台查看网站容量企业网站 php 下载
  • 诚信网站平台建设方案广州定制网站建设方案书
  • 室内设计师常用网站wordpress 高校官网
  • 描述网站建设规范方法麻豆秋白色蕾丝半身裙
  • 做阿里巴巴怎么进公司网站建盏世家直播
  • 杭州做网站的优质公司做外贸球衣用什么网站
  • 绵阳哪里可以做网站的地方网站建设项目数
  • 哪些网站可以做ppt赚钱营销运营主要做什么
  • 福州网站关键排名如何看网站的语言
  • 做网站的标题图片广西柳州网站建设公司
  • 门户网站建设文案南京模板网站建设
  • 怎么做网站icp备案wordpress安装使用视频教程
  • 怎样上百度做广告苏州优化方式
  • 网站建设的基本要素有厦门建设集团网站
  • 网站风格优势wordpress内页php页面
  • 做网站有必要吗做个app
  • 全国各大网站南京推广公司
  • 商业网站建设的方法网站充值记账凭证怎么做
  • 企业网站建设栏目结构图北京5人死亡
  • 企业网站seo平台wordpress salient
  • 经营网站 备案查询莱芜网站快排
  • 网站的建设维护移动应用与开发是干什么的
  • 网站如何建设数据库青岛网站设计公司联系方式
  • 有用node.js做的网站吗广告设计网站哪个好
  • 陆良建设局网站北京旅游型网站建设
  • 网站流量消耗计算黑龙seo网站优化
  • 山东济宁省建设厅官方网站Dw制作个人网站
  • 网站建设华网天下公司下载软件的app
  • python自学网站建站模板哪里好
  • 自适应型网站建设网站认证值不值得做