嘲笑条纹

时间:2019-08-14 09:45:54

标签: node.js testing jestjs

我想使用Jest测试我的nodejs代码。 在我的代码中,我使用条纹。

当需要条纹时,您必须使用此行

const stripe=require('stripe')("apikey");

以便能够访问条纹方法。

很明显,这是我要模拟的库,但如果我这样做,则

jest.mock('stripe');

我无法模拟所需的条带方法,就像在不将键传递给高阶函数的情况下执行需求一样。

我周围找不到任何关联。

有没有办法做到这一点?

1 个答案:

答案 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) { ... })对象

其余的应该去找。如果希望此模拟根据输入返回不同类型的数据,则需要在模拟中实现该逻辑。

希望这会有所帮助,