在为路由编写角度单元测试时,是否可以使用实际值导航,或者我们应该使用fakeAsync进行路由器导航?
选项1
it('navigate to "home" takes you to /home', fakeAsync(() => {
router.navigate(['home']);
tick();
expect(location.path()).toBe('/home');
}));
选项2
it('navigate to "home" takes you to /home', () => {
router.navigate(['home']).then(() => {
expect(location.path()).toBe('/home');
});
});
答案 0 :(得分:0)
通常,您测试组件,不路由器,并且仅在以下情况下进行测试 组件在给定的位置以正确的地址导航 条件。
您可以使用像这样的茉莉花来创建一个mockRouter / spyRouter。
.document.querySelector("#ctl00_PlaceHolderMain_ClaimsLogonSelector option[value='Windows']").Click
然后您可以将其提供给测试模块。
const routerSpy = jasmine.createSpyObj('Router', ['navigate']);
您可以有一个这样的测试规范。(示例取自有角官方文档)
TestBed.configureTestingModule({
providers: [
{ provide: Router,useValue: routerSpy }
]
});