如何在使用柏树时阻止测试自动注销?

  • 本文关键字:测试 注销 vue.js cypress
  • 更新时间 :
  • 英文 :


我目前正在使用Cypress来测试我的应用程序。我正在谈论的这个特殊测试需要填写一份融资流程表格,在我的申请中分为 3 个不同的视图。

这是我的测试代码:

describe('finance process logged', () => {
beforeEach(() => {
cy.setCookie('token', 'Bearer ' + token)
cy.intercept('GET', '**/me', { fixture: 'me.json' }).as('getUser')
cy.intercept('PUT', '**/me', { fixture: 'me.json' }).as('putMe')
cy.intercept('PATCH', '**/me/gdpr_consents', gdpr_consents).as('patchGDPR')
cy.intercept('GET', '**/api/v1/payment_methods', {
fixture: 'purchase-payment-methods.json',
}).as('getPaymentMethods')
cy.route({
method: 'POST',
url: '**/api/v1/orders',
status: 200,
response: {
uid: '12345',
status: 'init',
},
}).as('newOrder')
cy.route('GET', '**/api/v1/orders/12345', 'fixture:purchase-order.json').as('getOrder')
cy.intercept('POST', '**/api/v1/orders/248062de9f2c39e6/payments', 'fixture:financing-payment.json').as('getPayments')

})
it('finance process ok', () => {
cy.intercept('POST', '**/api/v1/orders/ca3f258f588ef610/payments', {
fixture: 'finance-payments-response.json',
}).as('postPayments')
cy.intercept('POST', '**/api/v1/transaction_financings/a60ceba307f0dcde/prescorings', {
fixture: 'finance-update-transaction-response.json',
}).as('postPrescoring')
cy.intercept('POST', '**/api/v1/transaction_financings/a60ceba307f0dcde/details', {
fixture: 'purchase-customer-details.json',
}).as('postDetails')
cy.visit('/sportage/sportage-2020-1-6-crdi-isg-6mt-mhev-urban/4c51ed/payment-choose', Cypress.config('VISIT_OPTIONS'))
cy.getByDataCy('purchase-page').should('be.visible')
cy.getByDataCy('request-finance').click()
cy.getByDataCy('financing-page').should('be.visible')
cy.getByDataCy('start-financing-button').should('be.visible').click()
cy.getByDataCy('personal-finance-data').should('be.visible')
cy.getByDataCy('email-input').should('be.visible').should('have.attr', 'disabled')
fillPersonalData()
cy.getByDataCy('data-authorization-check').check()
cy.getByDataCy('button-personal-data-next').click()
cy.getByDataCy('form-contact-data').should('be.visible')
fillContactData()
cy.getByDataCy('button-contact-data-next').click()
cy.getByDataCy('form-employment-data').should('be.visible')
fillEmploymentData()
cy.getByDataCy('button-next-financing').click()
cy.wait('@postPrescoring')
cy.wait('@customerOrder')
cy.wait('@getTariff')
cy.getByDataCy('finance-requested-page').should('be.visible')
})

})

测试在前面切换选项卡(从一个窗体到另一个窗体)时注销失败,特别是在单击cy.getByDataCy('button-personal-data-next').click()之后,因此在下一步中失败cy.getByDataCy('form-contact-data').should('be.visible').

在我的 Web 应用程序中,它不会注销客户端,所以我想知道如何防止它单独显示用户。 感谢您的帮助!

您有几个cy.route()调用已弃用,它们应该cy.intercept()

参见 cy.route()

⚠️ cy.server() 和 cy.route() 在 Cypress 6.0.0 中已弃用。在未来的版本中,将删除对cy.server()和cy.route()的支持。考虑改用 cy.intercept()。请参阅我们关于将 cy.route() 迁移到 cy.intercept() 的指南。

cy.route()命令前面总是有您没有的cy.server(),所以这些命令可能什么都不做。

将它们更改为cy.intercept(),您可能会解决问题。

最新更新