angular - 如何在 karma Angular8 中对 StripeJs 进行单元测试
问题描述
我正在尝试对使用StripeJS
.
我将它导入到文件“ng-app.js”中:
stripe: /*@ngInject*/ function ($ocLazyLoad) {
return $ocLazyLoad.load({
type: 'js',
path: 'https://js.stripe.com/v3/'
});
}
在我的支付组件 ( payment.component.ts
) 中,我使用:
import {StripeJS} from 'stripejs';
import {ElementFactory, OnChange, StripeElement} from 'stripejs/element';
并且:
constructor(private fb: FormBuilder, private store: Store<AppState>) {
this.stripe = window.Stripe(window.properties.stripePKs[this.carrier]);
this.createStripeElements(this.stripe.elements());
}
但我不知道如何StripeJS
模拟payment.component.spec.ts
.
组件是undefined
我做的时候component = fixture.componentInstance;
我的要求是知道如何将StripeJS
测试中的 组合为 Mock 或不组合,以便我成功地为其余测试创建组件。
解决方案
我从来没有使用过 stripeJS,所以我会给你一个一般性的答案,如果你需要一个具体的例子,然后在这里或在 github 上发布你的代码,我们可以为你提供更多细节。在单元测试之前,您需要了解 jasmine 和 Karma 是如何工作的。在单元测试的导入部分,确保已导入 stripeJS。在你的 UT 构造函数中有类似
mockstripejs:Mock<StripeJS>
在你的测试类中有测试的东西,你需要设置你想要测试的条带操作,如果它像stripe.getcardprovider
,那么你需要一个设置,比如mockstripejs.setup(x=>x.getcardprovider).is(cardProvider.Object)
cardProvider 是你想要返回的对象我希望这个帮助。
推荐阅读
- salesforce - 用于自动转换顶点类的 Salesforce Apex 测试类。接收错误转移到生产
- php - 将 SimpleXMLElement 对象打印为 xml 树
- electron - Electron:在 MacOsx 上使用 electron-winstaller 生成 Windows 安装程序时出错
- python - 如何获得一组二维点的每个 voronoi 区域的多边形?
- php - 如何从单独的 PHP 文件的结果中访问 PHP 中对象的属性?
- machine-learning - K-means可以降维吗?
- swift - 使用共享扩展 iOS 从 Wallet 打开 .pkpass 文件
- r - 计算R中数据框A的所有列与数据框B的所有列之间的相关p值
- node.js - 如何让每个用户对 discord.js 中的消息做出反应
- react-native - 反应原生禁用 StackNavigator 和 DrawerNavigator