【问题标题】:Are browser tests needed?是否需要浏览器测试?
【发布时间】:2019-11-09 20:30:54
【问题描述】:

为什么有人需要进行浏览器测试(使用 Laravel 黄昏之类的工具), 当他们已经在进行“功能测试”和“单元测试”时?

应用程序是否需要浏览器测试?为什么?

【问题讨论】:

    标签: laravel testing laravel-dusk


    【解决方案1】:

    对于测试,有不同的方法会产生不同的结果。为了回答您的问题,我将它们列在下面,然后再回到答案。

    单元测试

    • 这些用于测试应用程序的非常小的部分。
    • “单元”是单个类,而不是类的组合。
    • 在单元测试时,与其他类的任何交互通常都会被模拟,因此只测试“单元”本身。
    • 单元测试的执行速度非常快
    • 由于单元测试速度很快,它通常用于测试所有路径(例如快乐路径、替代路径和异常路径)
    • 通常在 phpunit 中完成
    • 没有数据库交互

    集成测试

    • 这些用于测试不同单元之间的交互
    • 只应测试少数路径,因为当涉及更多单元时路径数量会增加很多(例如,A 类有 3 条路径,B 类有 4 条路径,因此集成测试中 100% 的覆盖率应该涵盖 12 条路径)
    • 还是蛮快的
    • 通常在 phpunit 中完成
    • 可以进行数据库交互

    功能测试

    • 这些用于测试单个功能
    • 通常只测试快乐的路径(可能是其他路径)
    • 通常有数据库交互
    • 很慢
    • 可以有几个,但不要太多
    • 通常在 Behat 完成

    浏览器测试

    • 这些用于从头到尾测试功能
    • 模拟实际用户如何访问您的应用程序
    • 可用于检查某个功能是否适用于不同的浏览器
    • 根据工具可以录制实际鼠标移动/键盘敲击的视频
    • 很慢
    • 只应使用少数几个
    • 通常在 Dusk 完成(用于 Laravel)

    结论

    总而言之,测试级别具有与测试速度、测试覆盖率和被测代码大小相关的不同用途。至于功能测试与浏览器测试,区别在于实际模拟用户与您的应用程序的交互,而不是一台机器完成所有工作,以检查不同浏览器之间的兼容性并检查一个功能是否端到端有效。

    【讨论】:

      猜你喜欢
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-16
      • 1970-01-01
      • 2011-04-16
      • 2014-02-01
      • 2011-11-26
      • 2012-04-05
      相关资源
      最近更新 更多