zoukankan      html  css  js  c++  java
  • TDD:代码可测试设计

    1  方法内部代码命令,查询分离。

        a . 命令方法:执行一系列动作。

        b.  查询方法: 执行查询动作,并返回值。

    2  一个类中有好几个地方都用到了一个或多个全局变量,可以考虑把全局变量封装到另外一个类中。

       a .  使用示例: 在程序运行前,需要初始化的全局变量,或者缓存数据。

    3  通过子类来解除代码之间的依赖。

    a .   同层多个类之间的依赖解除,使用一个virtual 方法来包裹依赖对象的方法,通过stub桩子类来进行测试。

      public class PageLayout{

    private int id =0;

    private List styles ;

    private StyleTemplate template;

    protected void BindStyles()

    {

             styles =StyleMaster.FormStyle(template ,id);

            //....

    }

    }

    以上代码 依赖了一个SytleMaster类的FormStyle 方法. 把该方法代码解除依赖: 如下:

    public class PageLayout{

    private int id =0;

    private List styles ;

    private StyleTemplate template;

    protected void BindStyles()

    {

             styles =FormStyles(template,id);

            //....

    }

    protected virtual List  FormStyles(StyleTemplate template,int id)

    {

           return StyleMaster.FormStyle(template ,id);

    }

    }

    PageLayout 对 StyleMaster.FormStyle(template ,id) 方法的依赖被分离到一个FormSyles 方法中。那么,我可以创建一个测试子类,来测试

    public calss TestPageLayout: PageLayout

    {

    [Test]

    public void TestBindStyles()

    {    

         PageLayout pl = new TestPageLayout();

         // Test BindStyles Method.

        pl.BindStyles();  //....

    }

    protected override List  FormStyles(StyleTemplate template,int id)

    {

           return new arraylist();

    }

    }

  • 相关阅读:
    Java引用类型转换
    SWFUpload多文件上传使用指南
    SpringMVC中与Spring相关的@注解
    三层——c#版
    初识三层
    vb.net 总结
    设计模式总结
    设计模式系列——装饰模式
    设计模式系列——策略模式
    设计模式系列——简单工厂模式
  • 原文地址:https://www.cnblogs.com/iampkm/p/3382839.html
Copyright © 2011-2022 走看看