代码之家  ›  专栏  ›  技术社区  ›  chakrit Dutchie432

重构参数和单元测试

  •  2
  • chakrit Dutchie432  · 技术社区  · 16 年前

    public bool CanExecute()
    

    在70次提交之后,我添加了一个额外的参数

    public bool CanExecute(IStation target)
    

    现在的问题是,我有7个单元测试,涵盖了这个CanExecute方法,测试各种空值/属性组合。

    是否有最佳实践和/或模式来避免更新单元测试所需的这种手工重构?

    编辑:

    重构工具似乎是一条出路。谢谢

    4 回复  |  直到 16 年前
        1
  •  9
  •   Jennifer    16 年前

    不能在代码中保留这两种方法吗?除非IStation参数必须非null,否则您可以在不更改任何现有代码的情况下使用它。

    或者,如果参数有一个合理的默认值(同样是null!),resharper可以很容易地处理这样的更改。要添加新参数,请右键单击函数名称并选择更改签名。。。从这里可以添加带有合理默认值的新参数。RS将更新所有呼叫,因此您不必!

        2
  •  1
  •   Bill the Lizard Alexis MP    16 年前

    如果你知道这个方法可能会再次改变,我认为明智的做法是让这个方法过载,然后 添加

        3
  •  1
  •   krosenvold    16 年前

    当然,如果您在单元测试中复制过多的功能,当然需要考虑,但情况可能并非总是如此。

    相当多的现代ide(resharper for C#)支持“change method”重构,它允许您为新参数提供默认值。我发现这种重构功能非常值得掌握。

        4
  •  0
  •   Bryan Denny    16 年前