我想使用Jest测试我的nodejs代码。 在我的代码中,我使用条纹。
当需要条纹时,您必须使用此行
const stripe=require('stripe')("apikey");
以便能够访问条纹方法。
很明显,这是我要模拟的库,但如果我这样做,则
jest.mock('stripe');
我无法模拟所需的条带方法,就像在不将键传递给高阶函数的情况下执行需求一样。
我周围找不到任何关联。
有没有办法做到这一点?
答案 0 :(得分:0)
我认为您需要构建整个Stripe SDK模拟。这是对我的atm工作:
// Stripe SDK mock
jest.mock('stripe', () => {
return jest.fn().mockImplementation(() => {
return {
skus: {
retrieve: (sku, callback) => {
callback({}, {});
}
}
};
});
});
上面的模拟在调用sku
时将返回空的stripe.skus.retrieve(req.query.sku, function(err, sku) { ... })
对象
其余的应该去找。如果希望此模拟根据输入返回不同类型的数据,则需要在模拟中实现该逻辑。
希望这会有所帮助,