Nock在我的测试中没有拦截请求

时间:2019-05-08 19:59:50

标签: javascript stripe-payments nock

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

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

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

我在这里想念什么?谢谢

编辑:

我尝试将baseNockproductNock的声明移到我自己的测试中,没有其他运气

1 个答案:

答案 0 :(得分:0)

问题在于将其容纳在函数const productNock = (productId) => {

只需在我的test.before函数中将它与productId残存起来即可。

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

我希望可以帮助某人!