Cypress
本页由英文自动翻译。
阅读英文版一个 Cypress 测试:用新地址注册,并打开邮件中的验证链接,在 Cypress tasks 中使用 proxymail-qa 包。
把 proxymail-qa 添加到项目中。
npm install --save-dev proxymail-qapnpm add -D proxymail-qayarn add -D proxymail-qabun add -d proxymail-qa注册 tasks
Section titled “注册 tasks”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_KEYon('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),});},},});注册并打开链接
Section titled “注册并打开链接”用这个地址注册,然后打开邮件中的链接。
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 团队,他们会用英文回复。