提问者:小点点

就清除拦截而言,赛普拉斯的“测试”是什么?


这个问题特别与在Cypress中使用cy. intercept()进行存根以及编写E2E测试有关。我正试图弄清楚这些拦截存根到底在哪里被清除。

在Cypress留档中,他们使用诸如“套件”和“测试”之类的术语,但这些术语在我能找到的文档中的任何地方都没有明确定义,我读得越多,我就越困惑。

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

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

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

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(…)块之后都会清除拦截-所以这些块中的每一个都被认为是“测试”?

那么每个描述(…)在这里都会被视为“套件”?


共1个答案

匿名用户

测试是对it()的调用,套件是对描述()context()的调用。

赛普拉斯使用摩卡框架,所以这个问题适用于你的问题摩卡套件功能的作用是什么?

描述()和套件()本质上做同样的事情

请注意,Cypress包装了Mocha套件函数描述()context()并全局公开它们,这就是您可以直接在规范中使用它们的原因。

Mocha还有Cypress不会传递的kit()test()函数,但您可以使用Mocha全局访问它们

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)
  })
})