我有以下代码...如何模拟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