欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第21部分测试驱动开发与重构.ppt

    • 资源ID:6351287       资源大小:839.01KB        全文页数:18页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第21部分测试驱动开发与重构.ppt

    第21章 测试驱动开发与重构,暨南大学计算机科学系黄战,目标,在案例研究的语境中介绍这两种重要的开发实践。,overview,简介,极限编程(XP)所提倡的重要测试实践是:首先编写测试。它还提倡不断地重构代码以改进质量,包括降低冗余、提高清晰度等。现代工具都支持这两种实践,并且有许多OO开发者信赖这些实践的价值。,测试驱动开发(测试优先开发),测试驱动开发(TDD)迭代和敏捷XP方法提倡的优秀实践。在TDD风格的OO单元测试中,要在测试类之前编写测试代码,并且开发者要为几乎所有的产品代码编写单元测试。TDD的基本规律是编写一小段测试代码,然后再编写一小段产品代码,保证其通过测试,然后再编写更多的测试代码,依此类推。先写测试代码,此时不妨想象被测代码已经写出来了。,测试驱动开发的优点,能够保证编写测试人们往往会忽略单元测试。使程序员获得满足感从而更始终如一地坚持编写测试(我能够编写通过这一测试的代码吗?)有助于澄清接口和行为的细节可证明、可再现、自动的验证改变事物的信心,示例,遵循以下模式完成每个测试方法:1)创建测试固件。2)对其完成某些操作(你所希望测试的某些操作)3)评估结果是否为期望值。我们没有先编写所有的单元测试,而是只编写了一个测试方法,在类中实现该方法并确保通过测试,然后再反复这一过程。,重构,重构是重写或重新构建已有代码的结构化和规律性方法,但不会改变已有代码的外在行为,而是采用一系列少量转换的步骤,并且每一步都结合了重新执行的测试。不断地重构代码也是XP的一个实践,该实践也适用于所有的迭代方法(包括UP)。,重构,重构的本质是:一次实行一小步保留行为的转换(每次转换都称为“重构”)。每次转换后,要重新执行单元测试,以保证重构不会导致错误。重构和TDD具有关系所有的单元测试要支持重构过程。,重构,每次重构是:少量的但是一系列的改变。每次重构都伴随着重新执行的单元测试。会对代码和设计产生主体性的重新构造,同时所有的重构都要保证代码的行为与过去一致。,重构的命名,Fig.21.1,Fig.21.2,public class Playerprivate Piece piece;private Board board;private Die dice;/public void takeTurn()/roll diceint rollTotal=0;for(int i=0;i dice.length;i+)dicei.roll();rollTotal+=dicei.getFaceValue();Square newLoc=board.getSquare(piece.getLocation(),rollTotal);piece.setLocation(newLoc);/end of class,Fig.21.3,public class Playerprivate Piece piece;private Board board;private Die dice;/public void takeTurn()/the refactored helper methodint rollTotal=rollDice();Square newLoc=board.getSquare(piece.getLocation(),rollTotal);piece.setLocation(newLoc);private int rollDice()int rollTotal=0;for(int i=0;i dice.length;i+)dicei.roll();rollTotal+=dicei.getFaceValue();return rollTotal;/end of class,Fig.21.4,/good method name,but the logic of the body is not clearboolean isLeapYear(int year)return(year%400)=0)|(year%4)=0),Fig.21.5,/thats better!boolean isLeapYear(int year)boolean isFourthYear=(year%4)=0);boolean isHundrethYear=(year%100)=0);boolean is4HundrethYear=(year%400)=0);return(is4HundrethYear|(isFourthYear,Fig.21.6,Fig.21.7,

    注意事项

    本文(第21部分测试驱动开发与重构.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开