如何在不模拟ActivatedRouteSnapshot的情况下测试防角罩/旋转变压器

时间:2019-07-19 07:52:48

标签: javascript angular angular-router

我正在尝试测试可访问子级路由参数的Angular Resolver。

我的后卫工作正常,但是我无法轻松创建单元测试,因为无法创建带有子级路由(只读属性)的ActivatedRouteSnapshot

我的解析器

@Injectable({
    providedIn: 'root'
})
export class MyResolverGuard implements Resolve<string> {

    constructor() {
    }

    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): string {
        return route.firstChild.paramMap.get('my-param');
    }
}

我的测试:

    it('should resolve chilren route params', () => {
        guard = TestBed.get(MyResolverGuard);
        const route = new ActivatedRouteSnapshot();
        // Cannot assign children because it's a read only property
        route.children = [...];
        const myResolverParams = guard.resolve(route, null);
    });

除了模拟ActivatedRouteSnapshot之外,还有其他方法吗?

我的测试后卫方法好吗?

感谢您分享您的策略。

0 个答案:

没有答案