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

条带上有许多可用于测试模式测试的卡号,这些卡号均在此处定义:

https://stripe.com/docs/testing

请注意,您可以使用测试键安全地对API进行任何调用,并且该行为(几乎在所有方面)都将模仿实时模式下的情况,除非不收取任何实际费用:

https://stripe.com/docs/keys#test-live-modes

除了使用测试API密钥或完全{@ 3}模拟条带节点依赖之外,另一种方法是使用Stripe的官方模拟服务器:

using Jest

这个想法是,您的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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...