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

如果有UI自动化测试,为什么要编写单元测试

  •  6
  • pixel  · 技术社区  · 6 年前

    如果我有UI自动化测试,为什么我需要编写单元测试?

    3 回复  |  直到 6 年前
        1
  •  10
  •   Nishant    6 年前

    单元测试和端到端测试(UI测试)有两个不同的目的

    • 单元测试告诉您代码单元(模块、类、函数、接口)何时出现问题

    • 端到端测试告诉您失败如何影响端到端输出。

    假设你是通过装配化油器、变速箱、轮胎、曲轴等不同部件来制造汽车的,所有这些部件都是由不同的供应商(想想开发人员)制造的。

    当汽车无法按预期工作时,您是否需要测试单个部件以找出问题的根源?

    通常,您要做的是在将每个组件添加到您的车中之前,确保它们按预期工作(单元测试)。

    这通常通过创建装配线(CI管道)来工作。你的测试策略看起来像

    1. 测试它们在与其他组件连接时是否工作

    2. 所有部件组装好后,对汽车进行测试。

    阅读本文可能会让您更深入地了解: https://martinfowler.com/bliki/TestPyramid.html

        2
  •  5
  •   James    6 年前

    1. 单元测试使无情的代码重构成为一个不那么可怕的挑战,并降低了这种风险
    2. 单元测试提供了宝贵的代码文档,每个模块都做什么(自动化测试不提供这个功能),当代码更改时,单元测试也会更改,这与某些wiki或文档中的陈旧文档不同,后者在代码继续更改和随时间演变时永远不会更新。
        3
  •  3
  •   EricSchaefer    6 年前

    除了nisants和James的答案:使用UI/End-to-End测试很难测试特定的错误条件。