gpt4 book ai didi

javascript - 包含许多断言的 Cypress 测试的最佳实践

转载 作者:行者123 更新时间:2023-12-03 10:04:18 27 4
gpt4 key购买 nike

我正在用 Cypress 编写自动化测试,但遇到了一个问题。让我们来看下面的例子:

要执行测试,我需要登录。请注意,身份验证过程然后显示页面大约需要5-6秒。

加载页面后,我想确保一些主要的UI元素存在并且处于正确的状态,例如:

  • 检查<table>元素,其列名及其顺序
  • 检查表过滤器/搜索,并确保它们都为空
  • 确保分页可用

  • 因为所有这些测试只是观察,绝对没有相互作用,所以它们不会相互影响/干扰。 这意味着我可以编写一个it()测试来检查所有。但是,如果我这样做的话,我的测试将会非常庞大​​(例如100多个行)

    另一种方法是将这些测试分成较小的测试,以使其更具可读性。但是,这意味着我必须为每个测试登录,这大大增加了执行测试所需的时间

    您认为哪种方法更好?
  • 一个大测试,因为“同一页面没有影响”
  • 较小的测试可提高可读性,但运行时更长
  • 最佳答案

    Because all these tests are simply observation, with absolutely no interaction, they do not interact/disturb each other. It means I can write a single it() test that checks it all. However, if I do so, my test is going to be huge (like 100+ lines)



    好吧,不完全是。

    最佳实践是(如您所述)使测试易于阅读。将测试拆分(即使只是简单的断言),也可以根据testes部分将其分为单独的描述,描述甚至文件。测试更具可读性,结果也更加清晰。另外,每个测试都应该是独立的,不仅是在元素之间不相互干扰时。

    要编写更少的代码行,可以使用 arrays,例如用于表元素:
    const columns = ['name', 'surname', 'value1', 'value2'];
    columns.forEach(function(column) {
    cy.contains('table', column).should('be.visible');

    我将创建一个 describe并在 login()设置中使用 before函数,并在每个部分使用一对 it,以使测试易于阅读。

    关于javascript - 包含许多断言的 Cypress 测试的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60264582/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com