如何编写集成测试来测试我的节点应用程序中的Stripe集成



您将如何编写集成测试来测试我的节点应用程序中的Stripe集成?

现在我有一个非常简单的节点应用程序,它使用Stripe接受信用卡/借记卡付款。

我正在使用以下Stripe库https://github.com/stripe/stripe-node

例如

const charge = await stripe.charges.create({
amount: 2000,
currency: GBP,
source: id,
});
if (!charge) throw new Error("charge unsuccessful");
res.status(200).json({
message: "charge posted successfully",
charge,
});

我可以手动测试功能。

如何使用集成和单元测试来测试此功能?

您可以采取以下几种方法。第一种是使用测试API密钥:根据Stripe帐户的测试模式数据测试呼叫

https://dashboard.stripe.com/test/apikeys

Stripe有许多可以用于测试模式测试的卡号,这些卡号都在这里定义:

https://stripe.com/docs/testing

请注意,您可以使用测试密钥安全地对API进行任何调用,并且行为(几乎在各个方面(都将模仿实时模式下发生的情况,除非不会进行真正的收费:

https://stripe.com/docs/keys#test-实时模式

除了使用测试API密钥或完全使用Jest模拟stripe节点依赖性之外,另一种方法是使用stripe的官方模拟服务器:

https://github.com/stripe/stripe-mock

这个想法是,ci/test环境将运行模拟服务器,而不是使用测试密钥访问真正的Stripe API,而是访问模拟服务器:

const stripe = new Stripe("sk_test_xyz", {
host: "localhost",
protocol: "http",
port: 12111,
});

如果您像上面那样初始化stripe-node,那么您的调用将指向http://localhost:12111而不是https://api.stripe.com

最新更新