Unit testing 角度单元测试中的模拟第三方库(Razorpay)?

Unit testing 角度单元测试中的模拟第三方库(Razorpay)?,unit-testing,jasmine,sinon,Unit Testing,Jasmine,Sinon,我试图在我的一个组件中测试一个函数,该组件由以下两行组成: this.rzp1 = new Razorpay(orderDetails); this.rzp1.open(); 我试图理解如何在我的测试用例中模拟Razorpay函数 以下是我在组件中声明Razorpay的方式: export declare var Razorpay: any; 我已经尝试过各种方法,如: var stub = sinon.createStubInstance(MyConstructor) 任何线索都会有帮助

我试图在我的一个组件中测试一个函数,该组件由以下两行组成:

this.rzp1 = new Razorpay(orderDetails);
this.rzp1.open();
我试图理解如何在我的测试用例中模拟Razorpay函数

以下是我在组件中声明Razorpay的方式:

export declare var Razorpay: any;
我已经尝试过各种方法,如:

var stub = sinon.createStubInstance(MyConstructor)

任何线索都会有帮助。

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

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

beforeEach(() => {
  jasmine.spyOnAllFunctions(Razorypay.prototype);
  Razorypay.prototype.open.and.returnValue('foo');
});
您可以找到有关的更多信息