zoukankan      html  css  js  c++  java
  • [MSDN]ASP.NET MVC2(12)MVC中的测试驱动开发

    说明:本内容来自微软的webcast,讲师为苏鹏。视频没有书方便(想看哪页就看哪页),所以抄录要点和老师语录。

    内容介绍

    -          TDD介绍

    -          ASP.NET MVC2 各层使用TDD方式

    预备知识

    -          安装VS2010

    -          了解ASP.NET

    -          了解TDD基础知识

    -          了解设计模式基本概念

    为什么需要TDD

    TDD的由来

    -          它是一种实现代码的方法论而不是一种测试方法。

    它是一种开放方法而不是测试方法。

    它是用来保证软件代码的架构而不是用来保证质量的。

    它能辅助完成保证软件质量的工作。

    设计的目标是开放驱动的顺序。

    何谓TDD

    clip_image002

    过程:测试先行+重构+回归测试。

     

    先根据工程用例写测试代码,写一个黑盒测试代码。

    测试时检验工程外部接口的使用场景,而非具体的实现细节。

     

    然后才是实现功能的外部接口,在实现的过程中,还要根据需要写一些单元测试。

    单元测试不仅仅是实现接口,还包括内部的实现细节。就是白盒测试。

     

    如果发现外部接口设计有问题则需要进行修改和重构。每次代码修改之后,或者增加新功能之前,都需要回归运行已有的所有测试。不仅仅包括先前的测试,还包括所有的单元测试。

     

     测试先行保证了所有的应用场景中,逻辑性和完备型,这是TDD的一大卖点。完成的逻辑性和完备性,不是算法的高效性和优效性。

     

    重构是矫正功能语义的前提下,尽可能安全改进设计和实现。

     

    回归测试,保证任何修改不破坏已有的功能。

     

    特点——优点

    提高编码效率

    功能完整性和正确性。

     

    为什么需要TDD

    -          代码的质量更可靠

    先找到功能点,写测试。

    代码就是最好的文档。

     

    TDD的工作方式

    -          首先编写单元测试

    -          编写代码用于通过测试

    -          重构代码

    -          迭代

    第一步 编写测试代码

    clip_image004

    倒着来,写单元测试,再写代码。

    第二步 编写应用代码

    clip_image006

    第三步 重构上面的代码

    clip_image008

    写好一个函数,然后将第一个函数黏贴复制,而不是将第一个函数加几个参数。这样是不对的,加几个参数,提高重用。

    第四步 迭代

    -          重复上面的工作

    编写好的单元测试

    -          测试技巧

    1 不要越界

    - 使代码测试工作帮助函数进行定位

    一个测试就测试一个功能,不要测试跨类,跨接口,跨函数。

    2 默认单元测试

    clip_image010

    三个步骤,实例化一个controller;实例化一个viewresult;是否为期望的结果。

    3 单元测试要简洁

    - 只测试自己写的代码

    clip_image012

    上面的View()为空,第二个才能测试AboutReturnsAbout

    使用TDD的几个好处

    -测试目标明确

    -测试文档化

    -测试安全

    -测试提升质量

    TDD推荐阅读参考书

    -          Test Driven Development (理论)

    -          Test-Driven Development In Microsoft.NET(实践)

    ASP.NET MVC TDD

    -          测试Routes

    -          测试Controller

    -          测试 View helpers

    -          测试views

    Testing Routes

    -          Moq http://code.google.com/p/moq

    clip_image014

    Tesing Routes

    clip_image016

    Routertable 是一个全局变量,是static的。一个单元测试改变会影响另一个测试。

    Testing Controllers

    clip_image018

    Tesing Vivw helpers

    clip_image020

    Testing Views

    -          一般不由TDD进行测试

    -         

    测试CSS在不同的浏览器显示

    测试Javascript性能

    用户体验,一类用户使用习惯的归纳。

     

    推荐资源

    javascript高效编程》

    附:

    标题:粗体+斜体+黑色

    ppt文字:宋体+黑色

    作者语录:斜体+黑色/红色/蓝色

    我的心得:@开头

  • 相关阅读:
    redis的初认识
    Java中自己定义缓存方式
    Ehcache整合spring
    巴菲特
    EHcache经典配置
    (1)-使用json所要用到的jar包下载
    java和json互转
    TypeToken 是google提供的一个解析Json数据的类库中一个类
    深刻理解Java编程的7个例子
    Java实现几种常见排序方法
  • 原文地址:https://www.cnblogs.com/htht66/p/2330833.html
Copyright © 2011-2022 走看看