在Angular Unit测试中模拟第三方库(Razorpay)?

问题描述 投票:1回答:1

我正在尝试在我的一个组件中测试一个函数,该函数包含以下两行:

this.rzp1 = new Razorpay(orderDetails);
this.rzp1.open();

我试图了解如何在我的测试用例中模拟Razorpay这个函数。

这就是我在我的组件中声明Razorpay的方式:

export declare var Razorpay: any;

我已经尝试了各种方法,如:

var stub = sinon.createStubInstance(MyConstructor)

任何线索都会有所帮助。

unit-testing jasmine sinon
1个回答
1
投票

为什么不使用茉莉花的内置间谍设施而不是依赖另一个库(sinon)?

在每个块之前,您可以执行以下操作:

beforeEach(() => {
  jasmine.spyOnAllFunctions(Razorypay.prototype);
  Razorypay.prototype.open.and.returnValue('foo');
});

您可以找到有关spyOnAllFuntions in the documentation的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.