您将如何编写集成测试来测试我的节点应用程序中的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
。