跳转到内容

一个 Cypress 测试:用新地址注册,并打开邮件中的验证链接,在 Cypress tasks 中使用 proxymail-qa 包。

  1. 把 proxymail-qa 添加到项目中。

    npm install --save-dev proxymail-qa
  2. Cypress 在 Node 中运行 tasks,所以要在配置中注册它们。API 密钥 取自 Cypress 运行环境中的 PROXYMAIL_QA_API_KEY。

    cypress.config.ts
    import { defineConfig } from 'cypress';
    import { ProxyMailQA } from 'proxymail-qa';
    export default defineConfig({
    e2e: {
    setupNodeEvents(on) {
    const qa = new ProxyMailQA(); // reads PROXYMAIL_QA_API_KEY
    on('task', {
    createAddress: () => qa.createAddress({ persona: true }),
    waitForLink: ({ address, since }: { address: string; since: string }) => qa.waitForLink(address, { type: 'verify', since }),
    deleteAddress: (address: string) => qa.deleteAddress(address).then(() => null),
    });
    },
    },
    });
  3. 用这个地址注册,然后打开邮件中的链接。

    task 超时设为 35 秒,因为一次等待最长可持续 30 秒。如果要验证码而不是链接,添加一个调用 qa.waitForCode(address, { since }) 的 task,并把它的 value 填入表单。

    cypress/e2e/signup.cy.js
    it('verifies the email', () => {
    cy.task('createAddress').then(({ address }) => {
    const since = new Date().toISOString();
    cy.visit('/signup');
    cy.get('[name=email]').type(address);
    cy.contains('Sign up').click();
    cy.task('waitForLink', { address, since }, { timeout: 35000 }).then(({ value }) => cy.visit(value));
    cy.task('deleteAddress', address);
    });
    });

如果什么都没收到,错误会在 Proxy Mail QA 能判断的范围内说明原因,例如你的应用的邮件服务商只向已验证的地址发送。在 CI 中运行,请参见在 CI 中运行。更想在 spec 中用 cy.request 直接发 HTTP 请求?每个调用都在 REST API 指南中。

对本页有疑问?

可以用任何语言提问。文档可以立即回答,你也可以把问题发给 Proxy Mail QA 团队,他们会用英文回复。