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

标签 unit-testing jasmine sinon

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

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

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

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

export declare var Razorpay: any;

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

var stub = sinon.createStubInstance(MyConstructor)

任何线索都会有帮助。

最佳答案

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

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

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

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

关于unit-testing - 在 Angular 单元测试中模拟第三方库(Razorpay)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55797942/

相关文章:

javascript - Jasmine 规范因 Velocity.js 动画和 $.Velocity.mock = true 而失败

asp.net-mvc - 尝试使用 Moq 模拟 HtmlHelper 时抛出 MissingMethodException

reactjs - 测试素材-ui按钮文字

c# - 最小起订量错误设置与异步/等待单元测试不匹配

angularjs - [$注入(inject)器:unpr Unknown provider: GammeProvider <- Gamme <- GammeEditCtrl

angularjs - 运行 karma/jasmine 测试时出现 TypeError : Object #<Object> has no method 'apply' Error: Argument 'fn' is not a function, 获取对象

python - 在python 2的unittest模块中模拟raw_input()

javascript - 处理 Promise 拒绝案例 Mocha

javascript - 如何让 Sinon.js 假服务器调用成功函数?

node.js - 在快速中间件内没有调用Sinon spy