【问题标题】:Regarding using mock stripe for e2e tests关于使用模拟条带进行 e2e 测试
【发布时间】:2021-05-06 05:48:51
【问题描述】:

我最近遇到了 stripe mock(https://github.com/stripe/stripe-mock),用于本地测试,

public PaymentMethod createPaymentMethod(Card card) {
      var paymentMethodParams =
          PaymentMethodCreateParams.builder()
              .setType(Type.CARD)
              .setCard(
                  CardDetails.builder()
                      .setNumber(card.getNumber())
                      .setExpMonth((long) card.getExpiryMonth())
                      .setExpYear((long) card.getExpiryYear())
                      .setCvc(card.getCvv())
                      .build())
              .build();
      var response = testMode? "Make API call to mock stripe with params" : PaymentMethod.create(paymentMethodParams);
      return response;
  }

现在我不想手动对带有 http 客户端和请求正文的条带模拟服务器进行 http 调用,有没有办法更改 RequestOptions 中的某些内容或使用不同的依赖项进行调用?

基本上,我不想做,像

String url = String.format("%s%s", Stripe.getApiBase(), String.format("/v1/payment_methods/%s", ApiResource.urlEncodeId(paymentMethod)));

只是以某种方式覆盖条带基础 API URL。

Stripe.overrideApiBase(); 是有用的,但它是条带化 java 库的静态,我希望正常条带调用通过,当我的 e2e 测试运行时。

【问题讨论】:

  • 对于 E2E 测试,不要修改 Stripe 客户端绑定库,而应该只使用 Stripe 的 Sandbox 环境:在 Stripe 的术语中也称为测试模式。您可以使用 sk_test_xxxx 和 pk_test_xxx 之类的条带测试键进行测试模式调用,就像在产品环境中一样。

标签: java spring mocking stripe-payments e2e-testing


【解决方案1】:

Stripe.overrideApiBase() 可能是您想要的;您只想将您的应用配置为仅在运行端到端测试时覆盖它。

【讨论】:

  • 是的,这是迄今为止我能找到的最好的解决方案,想知道除了stripe-java之外是否还有一些用于进行条带api调用的库。
  • 可能有,但不会得到官方支持,因此对于这个特定的用例可能不值得权衡。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-16
  • 2020-04-23
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
  • 2016-05-19
相关资源
最近更新 更多