代码之家  ›  专栏  ›  技术社区  ›  Vaccano

在单元测试项目中引用System.Windows.Form是一个坏习惯吗?

  •  1
  • Vaccano  · 技术社区  · 15 年前

    我有一门课要测试 DialogResult 的价值。要获取该类型,我需要添加对 System.Windows.Forms .

    把它包括在一个测试项目中是不是不好的做法?

    4 回复  |  直到 15 年前
        1
  •  2
  •   James Black    15 年前

    包括单元测试所需的任何内容,该测试可以在没有任何人交互的情况下运行,或者包含正在观察的期望。

    如果您想查看表单中的某些内容是否正确显示,那么您正在进行功能测试。

    如果您发现必须对表单进行大量测试,那么您的表示层(视图层)中可能有过多的业务逻辑,您可能希望将业务逻辑移动到一个类中,该类可以独立于处理表单的任何内容进行单元测试。

    如果您只需要Windows.Forms中的一些枚举类或助手类,而这些与实际创建表单无关,那么可以进行单元测试。

        2
  •  2
  •   Eric J.    15 年前

    如果您只需要DialogResult的枚举定义,我看不到任何问题。

    如果您使用这个库来显示用户界面,从自动化的角度来看,这将是一件糟糕的事情,除非这个自动化套件是专门为自动测试用户界面而设计的(我想它不是这样,或者您已经有了引用)。

        3
  •  2
  •   Jon Skeet    15 年前

    你的测试本质上与什么形式有关?如果不是,则类型本身不应引用 DialogResult .如果它 (我怀疑是的)那么,你的测试也与表单相关是完全合理的。

        4
  •  1
  •   Timothy Carter    15 年前

    这取决于您的设置和您的测试项目的要求,但是作为一个一般规则,我会说这样做并不是一个坏的实践;尽管在我的经验中,这是一个相对罕见的实践。