就清除拦截而言,Cypress 中的“测试”是什么?

问题描述 投票:0回答:1

这个问题特别与在赛普拉斯中用

cy.intercept()
存根,以及编写E2E测试有关。我试图弄清楚这些拦截存根究竟在哪里被清除。

在赛普拉斯文档中,他们使用了“套件”和“测试”等术语,但在我能找到的文档中的任何地方都没有明确定义这些术语,而且我读得越多,我就越困惑。

对于拦截,特别是,文档说:

每次测试前都会自动清除所有拦截。 (参考

所以让我们从他们的文档中扩展一个小例子并说我有这个:

describe('My First Test', () => {
  it('Does not do much!', () => {
    expect(true).to.equal(true)
  })

  it('Does do this though!', () => {
    expect(true).to.equal(true)
  })

  it('Is pretty great!', () => {
    expect(true).to.equal(true)
  })
})

据我所知实际运行 Cypress,截距在每个

it(...)
块后被清除 - 所以这些块中的每一个都被认为是“测试”?

那这里每一个

describe(...)
都算是“套房”吗?

testing cypress ui-automation
1个回答
1
投票

测试是对

it()
的调用,套件是对
describe()
context()
的调用。

Cypress使用的是Mocha框架,所以这个问题适用于你的问题suite函数在Mocha中的作用是什么?

describe() 和 suite() 本质上做同样的事情

注意,Cypress 包装了 Mocha 套件函数

describe()
context()
并在全局公开它们,这就是为什么您可以直接在规范中使用它们的原因。

Mocha 也有

suite()
test()
函数,赛普拉斯没有传递这些函数,但是你可以使用 Mocha global

访问它们
Mocha.suite('My First Test', () => {
  Mocha.test('Does not do much!', () => {
    expect(true).to.equal(true)
  })

  Mocha.test('Does do this though!', () => {
    expect(true).to.equal(true)
  })

  Mocha.test('Is pretty great!', () => {
    expect(true).to.equal(true)
  })
})
© www.soinside.com 2019 - 2024. All rights reserved.