• TDD: 测试静态方法


    对于静态方法,mock框架大多不支持测试。所以需要修改代码,以便调用的静态方法可测试。

    1  一个静态方法类:

    public class MyHelper
    {
    public static string GetHelp()
    {
    return "This is help";
    }
    }

    2 使用该静态方法的调用类,

    public class MyManager
    {
    public bool IsManaged { get; set; }
    public void Manage()
    {
    string help = MyHelper.GetHelp();
    IsManaged = (!string.IsNullOrEmpty(help));
    }
    }

    3  修改2的代码,模拟2中粗体代码部分

    public class MyManager
    {
    public bool IsManaged { get; set; }
    public void Manage()
    {
    string help = GetHelp();
    IsManaged = (!string.IsNullOrEmpty(help));
    }

    protected virtual string GetHelp()
    {
    return MyHelper.GetHelp();
    }
    }
    4 在测试框架代码中创建一个Stu类,来模拟
    public class MyManagerStub:MyManager
    {
    protected override string GetHelp()
    {
    return "this is help from stub";
    }
    }
     
    5 现在可以通过测试Stu类来间接测试实际的代码了
    public void TestMe()
    {
    MyManagerStub manager = new MyManagerStub();
    manager.Manage();
    Assert.AreEqual(true, manager.IsManaged);
    }
  • 相关阅读:
    java单例类
    java构造方法-this关键字的用法
    java封装
    Bean的装配方式
    scope的范围
    Bean实例化(三种方法)
    依赖注入
    建立Spring项目的基础
    Androids中数据库的使用SQLite
    SharedPreferences
  • 原文地址:https://www.cnblogs.com/iampkm/p/3195353.html
Copyright © 2020-2023  润新知