首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试条形检验w/ Cypress

测试条形检验w/ Cypress
EN

Stack Overflow用户
提问于 2020-06-15 19:21:18
回答 3查看 1.6K关注 0票数 19

我必须在js中调用stripe.redirectToCheckout (https://stripe.com/docs/js/checkout/redirect_to_checkout)来将客户带到他们的条形结账页面。

我想使用柏树来测试签出过程,但是当stripe.redirectToCheckout导航到stripe域的页面时,它无法处理条带重定向,因为柏树帧丢失了。

我还想测试Stripe将我们重定向回成功或错误URL。

  1. 有没有办法迫使柏树“重新附加”到页面,一旦我们导航到Stripe结账或-
  2. ,就可以获得Stripe签出页面的URL,这样我们就可以手动地重定向,或者只知道它至少被正确的参数调用了。

我知道测试外部站点被柏树(https://github.com/cypress-io/cypress/issues/1496)的人们认为是一个“反模式”。但是,在这种情况下,如何测试一个非常标准的web流程,结帐,(我将添加一个非常流行和标准的支付服务)?我不相信这是“反模式”。这是端到端测试的一个重要步骤,Stripe专门为这类测试提供了一个测试沙箱。

EN

回答 3

Stack Overflow用户

发布于 2021-05-15 00:31:13

e2e测试应用程序的一种常见方法是制作一个简单的模拟版本,然后将其应用于e2e测试。模拟也可以在开发过程中应用,以加快速度。

票数 3
EN

Stack Overflow用户

发布于 2021-05-19 09:31:12

这个有用吗?

代码语言:javascript
复制
it(`check stripe redirection`, () => {
  cy.get('#payButton').click();
  
  cy.location('host', { timeout: 20 * 1000 }).should('eq', STRIPE_REDIRECT_URL);    

  // do some payment stuff here
  // ...
  // after paying return back to local
 

  cy.location({ timeout: 20 * 1000 }).should((location) => {
    expect(location.host).to.eq('localhost:8080')
    expect(location.pathname).to.eq('/')
  })

})

我使用这个方法来测试keyCloak登录。这是真正起作用的代码。

代码语言:javascript
复制
describe('authentication', () => {
  
  beforeEach(() => cy.kcLogout());

  it('should login with correct credentials', () => {
    cy.visit('/');

    cy.location('host', { timeout: 20 * 1000 }).should('eq', 'keycloak.dev.mysite.com:8443');

    // This happens on https://keycloak.dev.mysite.com:8443/auth/dealm/...
    cy.fixture('userCredentials').then((user) => {
      cy.get('#username').type(user.email);
      cy.get('#password').type(user.password);

      cy.get('#kc-login').click();

      cy.location({ timeout: 20 * 1000 }).should((location) => {
        expect(location.host).to.eq('localhost:8080')
        expect(location.pathname).to.eq('/')
      })
    })
  });
票数 0
EN

Stack Overflow用户

发布于 2021-05-21 11:10:47

我让它尝试使用条纹元素代替,因为它不会重定向,并给予我更多的控制权。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62395434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档