你的一些测试做了一个完整的页面重新加载
some of your test did a full page reload
当我做 angular 单元测试时,发现了这个错误
提醒:'Add Success!'
Chrome 58.0.3029 (Windows 10 0.0.0) 错误
您的一些测试重新加载了整页!
Chrome 58.0.3029 (Windows 10 0.0.0):执行 0 次,共 1 次错误(0.503 秒/0 秒)
// strategyAdd.component.ts
export class StrategyAdd{
strategy = new Strategy();
status:string;
iscookies = ['','Yes','No'];
isuseragents = ['','Yes','No'];
constructor( private strategyService: StrategyTablesService,
private router:Router,
private location: Location
) { }
onClickCreate(strategy:Strategy):void {
strategy.starttime = this.getDate();
this.strategyService.createStrategy(strategy).subscribe((data) => {
this.status = data.json().status;
if(this.status=="succeed"){
alert("Add Success!");
location.reload();
}else{
alert("Add failed!");
}
},
error => console.log(error));
}
}
//// strategyAdd.component.spec.ts
class MockStrategyTablesService extends StrategyTablesService{
//noinspection JSAnnotator
createStrategy(strategy:Strategy){
var mockData={
"strategyid" : "12",
"status" : "succeed"
}
return Observable.of({
json:() => mockData
});
}
}
describe('override provide Service',()=>{
let comp;
let strategy = new Strategy();
beforeEach(()=>{
TestBed.configureTestingModule({
imports:[HttpModule,RouterTestingModule],
providers:[
StrategyAdd,
{provide:StrategyTablesService,useClass:MockStrategyTablesService},
//{provide:Router,useClass:RouterStub},
Location,
]
});
});
beforeEach(inject([StrategyAdd],s => {
comp = s;
}));
it('test onClickCreate',async(()=>{
comp.onClickCreate(strategy);
expect(comp.status).toEqual("success");
}));
});
您执行 location.reload() 并使用真实位置 - 因此它会重新加载页面。尝试从 providers 数组中删除 Location,因为 RouterTestingModule 已经提供了存根 Location。
这已在 Karma 版本 6
中修复
当我做 angular 单元测试时,发现了这个错误
提醒:'Add Success!' Chrome 58.0.3029 (Windows 10 0.0.0) 错误 您的一些测试重新加载了整页! Chrome 58.0.3029 (Windows 10 0.0.0):执行 0 次,共 1 次错误(0.503 秒/0 秒)
// strategyAdd.component.ts
export class StrategyAdd{
strategy = new Strategy();
status:string;
iscookies = ['','Yes','No'];
isuseragents = ['','Yes','No'];
constructor( private strategyService: StrategyTablesService,
private router:Router,
private location: Location
) { }
onClickCreate(strategy:Strategy):void {
strategy.starttime = this.getDate();
this.strategyService.createStrategy(strategy).subscribe((data) => {
this.status = data.json().status;
if(this.status=="succeed"){
alert("Add Success!");
location.reload();
}else{
alert("Add failed!");
}
},
error => console.log(error));
}
}
//// strategyAdd.component.spec.ts
class MockStrategyTablesService extends StrategyTablesService{
//noinspection JSAnnotator
createStrategy(strategy:Strategy){
var mockData={
"strategyid" : "12",
"status" : "succeed"
}
return Observable.of({
json:() => mockData
});
}
}
describe('override provide Service',()=>{
let comp;
let strategy = new Strategy();
beforeEach(()=>{
TestBed.configureTestingModule({
imports:[HttpModule,RouterTestingModule],
providers:[
StrategyAdd,
{provide:StrategyTablesService,useClass:MockStrategyTablesService},
//{provide:Router,useClass:RouterStub},
Location,
]
});
});
beforeEach(inject([StrategyAdd],s => {
comp = s;
}));
it('test onClickCreate',async(()=>{
comp.onClickCreate(strategy);
expect(comp.status).toEqual("success");
}));
});
您执行 location.reload() 并使用真实位置 - 因此它会重新加载页面。尝试从 providers 数组中删除 Location,因为 RouterTestingModule 已经提供了存根 Location。
这已在 Karma 版本 6
中修复