首页 > 解决方案 > Nock 在我的测试中没有拦截请求

问题描述

在我的测试文件的开头,我设置了我的 nocks,其中之一是:

test.before(async () => {
  const baseNock = nock('https://api.stripe.com');
  const productNock = (productId) => {
    return baseNock
      .get(`/v1/products/${productId}`)
      .reply('200', getTestStripeProduct(productId));
  };

然后在我的测试中,当我点击调用 的内部 API 端点时api.stripe.com/v1/products/{id},它应该点击我的productNock. getTestStripeProduct(productId)但是,在对象返回之前,我没有得到在该函数内部记录值的值。

我在这里想念什么?谢谢

编辑:

我已经尝试将声明baseNock和移动productNock到我的测试本身而没有额外的运气

标签: javascriptstripe-paymentsnock

解决方案


问题是将其包含在函数中const productNock = (productId) => {

只需在我的test.before函数中使用存根 productId 即可使其正常工作。

baseNock
  .get(`/v1/products/product_123456`)
  .reply('200', getTestStripeProduct(productId));

我希望能帮助别人!


推荐阅读