Javascript 单元测试角度4获取错误`TypeError:无法读取属性';订阅';未定义的`
我在单元测试中遇到错误Javascript 单元测试角度4获取错误`TypeError:无法读取属性';订阅';未定义的`,javascript,angular,unit-testing,Javascript,Angular,Unit Testing,我在单元测试中遇到错误TypeError:无法读取未定义的的属性'subscribe',如何修复 我的部分代码: 规格 it('进行预期调用',()=>{ const item1:item3=fixture.debugElement.injector.get(item3); spyOn(comp,‘item5’); 间谍(第1项,“第2项”); 复合项4(); 期望(复合项5).已装入(); expect(item1.item2).tohavebeincall(); });尝试为为方法isPe
TypeError:无法读取未定义的的属性'subscribe',如何修复
我的部分代码:
规格
it('进行预期调用',()=>{
const item1:item3=fixture.debugElement.injector.get(item3);
spyOn(comp,‘item5’);
间谍(第1项,“第2项”);
复合项4();
期望(复合项5).已装入();
expect(item1.item2).tohavebeincall();
});代码>尝试为为方法isPeriodCycleOpen
创建的间谍提供模拟可观察的
Jasmine spy返回值
,以提供组件能够订阅的内容:
import { Observable } from 'rxjs/Observable';
it('makes expected calls', () => {
const mockResponse = { cyclePeriodOpen: true, deadLineCycle: 'foobar' };
const cycleServiceStub: CycleService = fixture.debugElement.injector.get(CycleService);
spyOn(comp, 'setChartData');
spyOn(cycleServiceStub, 'isPeriodCycleOpen').and.returnValue(Observable.of(mockResponse));
comp.getCycleStatus();
expect(comp.setChartData).toHaveBeenCalled();
expect(cycleServiceStub.isPeriodCycleOpen).toHaveBeenCalled();
});
希望这有帮助 尝试为为方法isPeriodCycleOpen
创建的间谍提供模拟Observable
Jasmine spyreturnValue
,以提供组件能够订阅的内容:
import { Observable } from 'rxjs/Observable';
it('makes expected calls', () => {
const mockResponse = { cyclePeriodOpen: true, deadLineCycle: 'foobar' };
const cycleServiceStub: CycleService = fixture.debugElement.injector.get(CycleService);
spyOn(comp, 'setChartData');
spyOn(cycleServiceStub, 'isPeriodCycleOpen').and.returnValue(Observable.of(mockResponse));
comp.getCycleStatus();
expect(comp.setChartData).toHaveBeenCalled();
expect(cycleServiceStub.isPeriodCycleOpen).toHaveBeenCalled();
});
希望这有帮助 我认为您缺少spyon方法的返回值,请尝试以下操作:
it('makes expected calls', () => {
const cycleServiceStub: CycleService =
fixture.debugElement.injector.get(CycleService);
spyOn(comp, 'setChartData');
spyOn(cycleServiceStub, 'isPeriodCycleOpen')
.and.callFake(() => Observable.of('yourValue')});
comp.getCycleStatus();
expect(comp.setChartData).toHaveBeenCalled();
expect(cycleServiceStub.isPeriodCycleOpen).toHaveBeenCalled();
});
我认为您缺少spyon方法的返回值,请尝试以下操作:
it('makes expected calls', () => {
const cycleServiceStub: CycleService =
fixture.debugElement.injector.get(CycleService);
spyOn(comp, 'setChartData');
spyOn(cycleServiceStub, 'isPeriodCycleOpen')
.and.callFake(() => Observable.of('yourValue')});
comp.getCycleStatus();
expect(comp.setChartData).toHaveBeenCalled();
expect(cycleServiceStub.isPeriodCycleOpen).toHaveBeenCalled();
});
你能在构造函数中显示IJ吗?你能在构造函数中显示IJ吗?嘿,伙计,谢谢你的帮助,在mockResponse之后再放一个)
)。。。我成功了=嘿,谢谢你的帮助,在mockResponse之后再放一个)
)。。。我成功了