2017-05-17 6 views
1

角度単位テストをしているときにこのエラーが発生しました。あなたのテストの中にはフルページのリロードを行ったものがあります

警告:「成功しました! Chrome 58.0.3029(Windows 10 0.0.0)エラー 一部のテストでは、ページ全体がリロードされました。 クローム58.0.3029(Windowsの10 0.0.0):1 ERRORの0(0.503秒/ 0秒)

// strategyAdd.component.ts 
 
export class StrategyAdd{ 
 

 
\t strategy = new Strategy(); 
 
    status:string; 
 
    iscookies = ['','Yes','No']; 
 
    isuseragents = ['','Yes','No']; 
 
    constructor(private strategyService: StrategyTablesService, 
 
    \t \t \t \t \t \t private router:Router, 
 
    \t \t \t  \t \t private location: Location 
 
) { } 
 

 

 
    onClickCreate(strategy:Strategy):void { 
 
    strategy.starttime = this.getDate(); 
 
    \t this.strategyService.createStrategy(strategy).subscribe((data) => { 
 
    \t \t this.status = data.json().status; 
 
    \t \t if(this.status=="succeed"){ 
 
    \t \t \t alert("Add Success!"); 
 
    \t \t \t location.reload(); 
 
    \t \t }else{ 
 
    \t \t \t alert("Add failed!"); 
 
    \t \t } 
 
    \t }, 
 
    \t 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"); 
 
    })); 
 
});

答えて

0

実行される場所を行います.reload()と実際の場所を使用する - それはページをリロードします。 RouterTestingModuleはすでにスタブロケーションを提供しているため、プロバイダ配列からLocationを削除してみてください。

関連する問題