Cypress 链接单个页面测试

Cypress 链接单个页面测试,cypress,Cypress,假设我正在测试一个包含10个页面的站点。在第10页,也就是最后一页,这是付款的地方,之后流程结束 我想在第10页上运行多个测试;visa支付、万事达卡支付、美国运通支付等 现在,我可以编写一个跨越整个流程的测试,从而获得签证付款。然后,我可以复制整个测试,调整万事达卡支付等。这显然是一种实践 在测试第10页(共10页)时,如何将第1页到第9页定义为先决条件,从而减少代码重复?您可以将测试用例排除在迭代一组配置的函数之外。您还可以使用it(或description(并以编程方式构建测试。使用这种方

假设我正在测试一个包含10个页面的站点。在第10页,也就是最后一页,这是付款的地方,之后流程结束

我想在第10页上运行多个测试;visa支付、万事达卡支付、美国运通支付等

现在,我可以编写一个跨越整个流程的测试,从而获得签证付款。然后,我可以复制整个测试,调整万事达卡支付等。这显然是一种实践


在测试第10页(共10页)时,如何将第1页到第9页定义为先决条件,从而减少代码重复?

您可以将测试用例排除在迭代一组配置的函数之外。您还可以使用
it(
description(
并以编程方式构建测试。使用这种方法,只需编写一次,并且仍然可以为特定于提供商的部分编写一些
if/else

describe('Checkout', () => {
  [
    {provider: 'visa', email: 'test+visa@provider.com'},
    {provider: 'mastercard', email: 'test+mastercard@provider.com'},
    {provider: 'amex', email: 'test+amex@provider.com'},
  ].forEach((setting) => {
    it(`Provider: ${setting.provider}`, () => {
      cy.get(`button[data-provider="${setting.provider}"]`).click();
      cy.get('#email')
        .value(setting.email);
      cy.assert('something');
      cy.click('.next-step');
    });
  });
});

根据应用程序结构(请显示),您可能可以使用。