我正在嘗試為按鈕單擊撰寫一個測驗,該按鈕單擊會觸發帶有一些引數的 navigateByUrl 函式呼叫。
我已經模擬了路由器并提供給測驗模塊
let mockRouter = {
navigateByUrl: jasmine.createSpy("navigateByUrl").and.callFake(() => {
console.log("fake is called");
}),
};
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [HttpClientModule],
declarations: [RecoverPasswordComponent],
providers: [{ provide: Router, useValue: mockRouter }],
}).compileComponents();
}));
當我單擊按鈕并觸發navigateByUrl 時,我得到了控制臺,但我也收到一個錯誤,因為Some of your tests did a full page reload!這意味著觸發了實際的navigateByUrl。
我不明白,如果函式被監視,為什么會觸發實際的函式呼叫?
uj5u.com熱心網友回復:
我終于弄清楚是什么導致了這個!所以基本上我有一個表單,其中宣告了我的按鈕,因為該表單未與 ng-submit 回呼系結,因此在單擊該按鈕時,會觸發表單按鈕的默認事件,從而重新加載測驗套件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/389712.html
