I caught this error when i made test for angular test.following are parts of my code. Failed: this.strategyService.getAllstrategys(...).subscribe is not a function TypeError: this.strategyService.getAllstrategys(...).subscribe is not a function
//In strategyTables.component.ts
getStrategys():void{
this.strategyService.getAllstrategys(this.strategyname,this.isuseragent,this.iscookie,this.currentpage,this.itemsPerPage,this.sorts).subscribe(data=>{
this.totalItems=data.json().totalElements;
this.currentPage=data.json().number+1;
this.strategys=data.json().content;
for(var i=0;i<data.json().totalPages;i++){
this.totalnumbers[i]=i+1;
}
},
error => console.log(error),()=>console.log("获取到所有的urlmng"));
}
//In strategyTables.component.spec.ts
class MockStrategyTablesService extends StrategyTablesService{
//noinspection JSAnnotator
getAllstrategys(strategyname:string ,isuseragent:string ,iscookie:string ,page:number,
size:number,sorts:string){
return{
"content" : [ {
"id" : 11,
"strategyname" : "strategy11",
"isuseragent" : "是",
"depth" : 2,
"downloadDelay" : 3,
"iscookie" : "yes",
"agent" : null,
"starttime" : ""
}, {
"id" : 10,
"strategyname" : "策略",
"isuseragent" : "是",
"depth" : 2,
"downloadDelay" : 2,
"iscookie" : "否",
"agent" : "2",
"starttime" : "2017年2月2日 14:44:47"
}, {
"id" : 9,
"strategyname" : "策略9",
"isuseragent" : "是",
"depth" : 3,
"downloadDelay" : 5,
"iscookie" : "否",
"agent" : "1",
"starttime" : "2017年2月2日 14:41:56"
}, {
"id" : 6,
"strategyname" : "策略6",
"isuseragent" : "是",
"depth" : 10,
"downloadDelay" : 3,
"iscookie" : "否",
"agent" : null,
"starttime" : "2017-03-09 15:08:56"
}, {
"id" : 5,
"strategyname" : "策略5",
"isuseragent" : "是",
"depth" : 10,
"downloadDelay" : 3,
"iscookie" : "否",
"agent" : null,
"starttime" : "2017-03-01 15:08:53"
} ],
"last" : false,
"totalPages" : 2,
"totalElements" : 8,
"size" : 5,
"number" : 0,
"sort" : [ {
"direction" : "DESC",
"property" : "id",
"ignoreCase" : false,
"nullHandling" : "NATIVE",
"ascending" : false
} ],
"first" : true,
"numberOfElements" : 5
}
}
}
describe('strategyTable.component',()=>{
let compp;
beforeEach(()=>{
TestBed.configureTestingModule({
imports:[HttpModule,RouterTestingModule],
providers:[
StrategyTables,
{provide:StrategyTablesService,useClass:MockStrategyTablesService},
Location,
]
});
});
beforeEach(inject([StrategyTables],s => {
compp = s;
}));
it('test',async(()=>{
compp.getStrategys();
expect(compp.totalItems).toEqual(8);
}));
});
getAllstrategys
– Pengyy