代码之家  ›  专栏  ›  技术社区  ›  Stein G. Strindhaug

gui相关私有方法的自动测试

  •  1
  • Stein G. Strindhaug  · 技术社区  · 14 年前

    当谈到gui编程(至少对于web)时,我觉得对单元测试有用的通常只有一些私有方法*。虽然单元测试对于后端代码来说非常有意义,但我觉得它不太适合gui类。

    添加自动测试的最佳方法是什么?


    * 为什么我认为唯一有用的测试方法是私有的:

    通常,当我编写gui类时,除了构造函数之外,它们甚至没有任何公共方法。公共方法(如果有的话)是微不足道的,构造函数执行大部分调用私有方法的工作。

    它们从服务器接收一些数据,执行许多琐碎的输出,并将数据馈送给包含在其中的其他类的构造函数,添加侦听器,这些侦听器或多或少直接调用服务器……大部分都很简单(最难的部分是布局:css,ie等等),但有时我会创建一些私有方法来完成一些高级技巧,我 绝对不会 希望公开可见(因为它与布局的实现紧密耦合,并且可能会发生更改),但足够复杂,无法打破。这些通常只由构造函数调用,或由代码中的事件重复调用,而不是由任何公共方法调用。

    我想有一种方法来测试这类方法,而不是公开或借助于反省手段。

    (顺便说一句:我目前正在使用gwt,但我觉得这适用于我为gui编写代码时使用的大多数语言/框架)

    1 回复  |  直到 14 年前
        1
  •  1
  •   Mark Seemann    14 年前

    与其坚持所有东西都必须是私有的,不如考虑采用许多与ui相关的设计模式之一,例如 MVC , MVP MVVM .

    用户界面会将所有逻辑委托给 可测试的 用户界面/演示文稿- 具体的 与公共成员一起上课。这些实现不会污染您的核心域模型,因为它们仍然是特定于ui的,可以在单独的库中实现。

    您可以对这样的表示库进行单元测试,并使用它来执行 Subcutaneous Tests .