angular - 使用 Angular 2-4 编写 Jasmine 测试用例时 first 不是函数
问题描述
我正在为以下代码编写测试用例
@select([
'reportingTabState',
'actualDelayDetails',
'ActualDelayDetailsResponse',
'DelayDetails',
'actualDelayDetails',
])
actualDelayDetails$;
this.actualDelayDetailsSub = this.actualDelayDetails$
.first()
.subscribe(actualDelayDetails => {
//rest of the code..
});
像这样在我的规范中嘲笑它
const actualDelay$ = MockNgRedux.getSelectorStub([
'ActualDelayDetailsResponse',
]);
actualDelay$.next(actualDelayDetails);
actualDelay$.complete();
Object.defineProperty(component, 'actualDelayDetails$', { writable: true });
component.actualDelayDetails$ = actualDelay$;
fixture.detectChanges();
在 actualDelayDetails 我有这样的模拟对象:
const actualDelayDetails = {
ActualDelayDetailsResponse: [{
primaryDelay: {
code: 'CR2F',
minutes: '1 min',
details: 'REPLACEMENT OF A FLIGHT OPS CREWMEMBER D',
detailsDesc: 'REPLACEMENT OF A FLIGHT OPS CREWMEMBER D',
},
secondaryDelay: {
code: 'F06',
minutes: '23 min',
details: 'DUE TO CAPTAIN DISCRETION TO NOT ACCEPT',
detailsDesc: 'DUE TO CAPTAIN DISCRETION TO NOT ACCEPT',
},
}],
};
这个你能帮我吗。
解决方案
“first() 运算符采用可选的谓词函数,并在源完成时没有匹配的值时发出错误通知。” 所以我尝试删除 first() 方法,它工作正常而不会破坏我的功能。感谢 PierreDuc 的即时回复。但不幸的是,这个解决方案对我不起作用。
推荐阅读
- php - 它是什么代码以及如何在php中重写
- javascript - 在momentjs中将日期从给定格式转换为yyyy-mm-dd
- cqrs - 如果事件存储中存在某些事件,则首次应用启动失败
- excel - excel边框外底部的一行,如何解决?
- regex - Bash / 正则表达式转换
- html - HTML/CSS - 两个具有单一渐变背景但有一个粘性元素的 div
- formal-verification - 为什么我不能从 Dafny 的幽灵场中调用(非静态)引理?
- mysql - Laravel db query with now()
- routing - Angular 6重新加载参数更改页面
- wordpress - Woocommerce Klarna 结帐布局修改