Пожалуйста, у меня есть проблема.Мне нужно протестировать функцию, подобную приведенному ниже:
populateForm() {
this.activatedRoute.params.subscribe(
params => {
this.ws.getbyid(params['id']).subscribe(
prod=> {
this.prod= prod;
this.editprodForm.controls['prodnr'].setValue(prod.prodnr);
this.editprodForm.controls['proddesc'].setValue(prod.proddesc);
}
);
}
);
}
onupdatprod() {
this.areWeWaiting = true;
let updatprod= new Prod(
this.editprodForm.value
);
updatprod.prod_id= this.prod.prod_id;
this.ws.update(updatprod).subscribe(
result => {
if (result === true) {
Materialize.toast('success', 4000);
} else {
}
},
error => {
}
);
}
Мой код тестирования подобен приведенному ниже:
it('should call service.Updatewhen onupdateprod, Validation Error', done => {
const mock = [];
spyOn(component['as'], 'UpdateAlarms').and.callThrough()
let updateprod = new Prod('1231');
updateprod.prodnr= '4';
updateprod.proddesc= 'UpdateTest';
updateprod.prod_id= '1';
component['ws'].update(updateprod ).subscribe(fail => {
console.log('Validation Error')
console.log(fail)
expect(fail).toBeFalsy();
done();
});
component.onupdatprod();
})
Моя ошибка:
Ошибка типа:Не удается прочитать свойство 'prod_id' из неопределенного
Эта ошибка может быть из-за того, что prod_id
я беру из getbyid
и в функции onupdatprod()
я вызываю updatprod.prod_id= this.prod.prod_id;
Можете ли вы спроситьМне любая идея, пожалуйста, как читать значение prod_id
Спасибо