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

柏树的页面对象模式?

  •  1
  • kuceb  · 技术社区  · 6 年前

    我想使用一个类似于selenium这样的框架中存在的页面对象模式的工作流。我想用我的 login.spec.js 在我的 editSettings.spec.js ,因为它需要用户登录。

    我如何在柏树上做到这一点?我可以从一个测试文件导出一个函数并在另一个测试文件中使用吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   kuceb    6 年前

    是的,cypress支持在ui中创建和重用操作的能力,例如以用户身份登录。

    然而 ,cypress还允许您控制浏览器的状态 更有力 比使用者更容易。

    例如:我创建了一个“用户可以使用有效的用户名和密码登录”的测试——cypress导航到登录页面,在用户字段中键入内容,在密码字段中键入内容,然后单击“登录”按钮。这个 页面对象模式 你会在上重复这个动作吗 需要用户登录的每个测试 (大多数测试)

    柏树支持这一点;然而, 这比必须的要慢 . 导航到登录页面、键入信息、处理响应和导航到要测试的页面需要相当长的时间。 相反 , Cypress 的API允许以下操作:

    • 使用 cy.request() 使用登录凭据直接命中服务器。这不需要应用程序的状态,不需要在字段中键入内容,不需要单击按钮,也不需要页面指示
    • 您的网站使用的任何cookie 自动设置 ,或者你可以 set localStorage 使用响应
    • 将此命令设为自定义命令,在每次测试之前调用它,然后轰隆一声——您几乎立即生成了用户的状态,最重要的是,它是免费的