【问题标题】:Cypress - Test belong to relationship caseCypress - 测试属于关系案例
【发布时间】:2020-11-30 09:18:16
【问题描述】:

是否可以使用cypress来测试模型之间的关系?

比如我有这样一种关系:一个老师有很多学生,每个学生都属于一个老师。老师 A 登录后,在 url "/my-students" 上,他或她将看到他或她的所有学生的列表。

我要测试的是确保“/my-students”页面上列出的学生都不属于老师B而不是老师A。

我可以用 cypress 测试这个案例吗?有没有可能,如果可能怎么做?

【问题讨论】:

  • 您是否尝试过创建预期学生列表并仅检查显示的学生是否与列表匹配?

标签: laravel relationship cypress


【解决方案1】:

简短的回答是“是的”,您绝对可以进行这种测试。方法有很多种,但我将建议我认为最简单的方法。

  1. 确保您的网站使用的数据不会改变。您希望您的测试是确定性的……这些运行数据库查询来确定预期结果都不行。
  2. 第一次通过,手动验证页面内容
  3. 使用cy.snapshot() 记录当前页面状态以供将来比较。这是来自 Gleb Bahmutov(赛普拉斯开发人员)的附加 npm 包。可以在here 找到完整的说明,包括安装。

您的假设测试如下所示:

describe('student directory page', () => {
  beforeEach(() => {
    // Log in
    cy.logIn('lizstewart@example.com') // This is usually a custom command; up to you
  })

  it('displays the correct students', () => {
    // Go to the page
    cy.visit('my-students')

    // Check for the correct students
    cy.get('#studentList').snapshot()
  })
})

第一次运行测试时,无论如何它都会通过,并会写出一个名为snapshots.js 的文件,您可以将其提交到您的 repo。如果 HTML 输出与之前的内容不完全匹配,则所有后续测试运行都将失败。

这是一种生硬的方法,但它快速有效。

【讨论】:

    猜你喜欢
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多