我正在創建一個 Angular 應用程式,我正在學習單元測驗,我想測驗某些方法,但我無法測驗該函式是否進入 if 陳述句。我不知道如何強迫它。你能教我怎么做嗎?這是函式:
currentRoute(): void {
const router: Router = this.injector.get(Router);
router.events.subscribe((val) => {
if (val instanceof NavigationEnd) {
this.checkMenuLinks(val);
}
});
}
如果我運行一個測驗覆寫率,我會得到紅色的 if 陳述句,因為沒有經過測驗。你能告訴我如何實作這一目標嗎?非常感謝。
uj5u.com熱心網友回復:
很可能您沒有在單元測驗中觸發路由器事件 - 這很正常
你應該查看 Angular RouterTestingModule
- https://angular.io/api/router/testing/RouterTestingModule
有一些關于測驗路線本身的很好的教程,您將希望觸發 Navigation End 事件,該事件應該在此程序中發生。您可以jasmine spy在checkMenuLinks()方法中添加一個以檢查它是否已被呼叫
- https://dev.to/this-is-angular/testing-angular-routing-components-with-the-routertestingmodule-4cj0
其他方法涉及模擬Router服務,通常這是最有效的方法
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/348013.html
