Karma test failing : TypeError: this.cardManagementService.getLabelList(...).replace is not a function
Karma test failing : TypeError: this.cardManagementService.getLabelList(...).replace is not a function
我收到 Karma 错误:
TypeError: this.cardManagementService.getLabelList(...).replace is
not a function
请检查我在 TS 和 Spec 文件中的代码。我想我在为 CardManagementService.
编写 usevalue 时犯了一些错误
在 TS 文件中我有以下代码:
setCardManagementLabels(): void {
this.cardManagementLabels.cardNumber = this.cardManagementService.getLabelList('PROFILE.CARDMGMTTAB.CARDNUM');
.---Some code here ---
this.cardManagementService.getLabelList('PROFILE.CARDMGMTTAB.SUSPENDMESSAGENOCOVERAGE')
.replace('{suspended}', 'suspended').replace('{suspended}', 'suspended')....................}}
对于规范文件,我有这个:
providers: [ ........{provide: CardManagementService, useValue: {getLabelList: () => of([]), getEventV: () => of([])} },......]
fit('should test setCardManagementLabels method for suspend and no coverage reason', () => {
component.cardStatus = 'Suspended';
component.debitCardSuspendClosedReason = 'NO_COVERAGE';
component.setCardManagementLabels();
});
如果您在测试的 providers
处使用 useValue
,您需要提供一个模拟实例,该实例具有涵盖代码中的方法。由于 of([])
在测试中由 getLabelList()
返回,因此没有任何名为 replace
.
的方法
我假设 this.cardManagementService.getLabelList()
returns 是原始代码中的一个字符串,所以在你的情况下 useValue: {getLabelList: () => "a string mocked string"
可以作为一个很好的起点。
我收到 Karma 错误:
TypeError: this.cardManagementService.getLabelList(...).replace is not a function
请检查我在 TS 和 Spec 文件中的代码。我想我在为 CardManagementService.
编写 usevalue 时犯了一些错误在 TS 文件中我有以下代码:
setCardManagementLabels(): void {
this.cardManagementLabels.cardNumber = this.cardManagementService.getLabelList('PROFILE.CARDMGMTTAB.CARDNUM');
.---Some code here ---
this.cardManagementService.getLabelList('PROFILE.CARDMGMTTAB.SUSPENDMESSAGENOCOVERAGE')
.replace('{suspended}', 'suspended').replace('{suspended}', 'suspended')....................}}
对于规范文件,我有这个:
providers: [ ........{provide: CardManagementService, useValue: {getLabelList: () => of([]), getEventV: () => of([])} },......]
fit('should test setCardManagementLabels method for suspend and no coverage reason', () => {
component.cardStatus = 'Suspended';
component.debitCardSuspendClosedReason = 'NO_COVERAGE';
component.setCardManagementLabels();
});
如果您在测试的 providers
处使用 useValue
,您需要提供一个模拟实例,该实例具有涵盖代码中的方法。由于 of([])
在测试中由 getLabelList()
返回,因此没有任何名为 replace
.
我假设 this.cardManagementService.getLabelList()
returns 是原始代码中的一个字符串,所以在你的情况下 useValue: {getLabelList: () => "a string mocked string"
可以作为一个很好的起点。