【问题标题】:Mock Third party library (Razorpay) in Angular Unit tests?在 Angular 单元测试中模拟第三方库(Razorpay)?
【发布时间】:2019-04-22 16:51:22
【问题描述】:

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

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】:

    为什么不使用 jasmine 内置的 spy 工具而不是依赖另一个库 (sinon)?

    在你的每个块之前,你可以做这样的事情:

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

    你可以找到更多关于spyOnAllFuntions in the documentation的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-02
      • 2023-02-19
      • 1970-01-01
      • 2020-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      相关资源
      最近更新 更多