I would like to use MOCKservice to simulate the data returned by the service instead of the original service。But i don't know how to do it.I have tried this but failed. Expected undefined to equal 204.
//code in strategy.ts
onClickDelete(strategy:Strategy):void{
if(window.confirm("Are you sure?")){
this.strategyService.deleteStrategyById(strategy.id).subscribe((res:Response)=>{
this.status = res.status;
alert(this.status);
alert("delete!");
//location.reload();
},
error=>{alert("delete failed");console.log(error);},
()=>console.log(strategy.strategyname +" This object has been completely deleted"));
//}
}
//startegy.spec.ts
class MockStrategyTablesService extends StrategyTablesService{
//noinspection JSAnnotator
deleteStrategyById(id: number){
var mockData={
_body:null,
status:204,
statusText:"OK",
type:2,
url:"http://localhsot:8080/api/strategys/10"
}
return Observable.of({
Response:() => mockData
});
};
}
describe('strategyTable.component',()=>{
let compp;
let strategy= new Strategy();
beforeEach(()=>{
TestBed.configureTestingModule({
imports:[HttpModule,RouterTestingModule],
providers:[
StrategyTables,
{provide:StrategyTablesService,useClass:MockStrategyTablesService},
//{provide:Router,useClass:RouterStub},
Location,
]
});
});
beforeEach(inject([StrategyTables],s => {
compp = s;
}));
it('test delete',async(()=>{
compp.onClickDelete(strategy);
expect(compp.status).toEqual(204);
}));
});
Aucun commentaire:
Enregistrer un commentaire