【发布时间】: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