在 Angular 单元测试中模拟第三方库 (Razorpay)?
Mock Third party library (Razorpay) in Angular Unit tests?
我正在尝试在我的组件之一中测试一个函数,该组件由以下两行组成:
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');
});
您可以找到有关 spyOnAllFuntions
in the documentation 的更多信息。
我正在尝试在我的组件之一中测试一个函数,该组件由以下两行组成:
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');
});
您可以找到有关 spyOnAllFuntions
in the documentation 的更多信息。