有角度的。在测试中导航后,不会发出ActivatedRoute.queryParams

时间:2019-01-09 15:47:21

标签: angular testing routing

我在组件中有一个代码

this.activatedRoute.queryParams
        .pipe(tap((qs: Params) => {
            this.handleFacetsQueryStringParamsUpdated(qs.facets);
        }))
        .subscribe();

        this.router.navigate([],
        {
            queryParams: {facets: JSON.stringify(facetsSelection)},
            queryParamsHandling: 'merge'
        });

我使用TestBed配置进行了测试:

        TestBed.configureTestingModule({
        imports: [RouterTestingModule],
        providers: [{
            provide: ActivatedRoute,
            useValue: {
                queryParams: new BehaviorSubject({}),
                snapshot:
                {
                    queryParams: {}
                }
            }
        }]
    });

很显然,在router.navigate结束之后,queryParams主题不会发出新的查询字符串参数。它仅发出空值。我想我需要以某种方式连接ActivatedRoute的伪造品和测试router的实例。感谢您有任何解决此问题的想法。

0 个答案:

没有答案