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

时间:2019-04-22 16:51:23

标签: unit-testing jasmine sinon

我正在尝试在我的组件之一中测试功能,该组件包括以下两行:

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

我正在尝试了解如何在我的测试用例中为该功能模拟Razorpay。

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

export declare var Razorpay: any;

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

var stub = sinon.createStubInstance(MyConstructor)

任何线索都将有所帮助。

1 个答案:

答案 0 :(得分:1)

为什么不使用jasmine的内置间谍工具而不是依赖其他库(sinon)?

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

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

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