我有以下代碼...如何模擬Angular 2路線?
export class LoginComponent {
userName: string;
password: string;
rememberMe: boolean = false;
constructor(private auth: AuthenticationService,
private router: Router) {
...
}
...
}
我試圖單元測試,但我的第一次嘗試失敗....
beforeEach(() => {
router = new Router();
component = new LoginComponent(authService, router);
});
,因爲它需要params用於在路由器構造函數。 Here I saw ...
beforeEach(() => addProviders([
APP_ROUTER_PROVIDERS, // must be first
{provide: APP_BASE_HREF, useValue: '/'}, // must be second
{provide: ActivatedRoute, useClass: Mock},
{provide: Router, useClass: Mock}
]));
但我似乎並沒有在我的依賴任何地方APP_ROUTER_PROVIDERS
或Mock
,所以我認爲這可能是陳舊的(或者我需要依賴)。
我該如何嘲笑這件事?這對我正在進行的測試無關緊要。
這與實際項目的做法有何不同(我在發表之前發佈)。看來我們只需要......'TestBed.configureTestingModule({imports:[RouterTestingModule]});''''和'router = TestBed.get(Router);'?我還沒有測試過,所以我不確定它是否有效。 – Jackie
@Jackie你是什麼意思*「實際項目」*? – jonrsharpe
https://github.com/angular/angular/blob/master/modules/%40angular/router/test/router.spec.ts – Jackie