在我的角2次组件测试,我用的是下面传递一个参数:设置并通过不同的PARAMS与角提供商ActivatedRoute
providers: [
{ provide: ActivatedRoute, useValue: {'params': Observable.from([{'id': 5}])} }
]
然而,在我的步骤定义,我想能够为id参数传递不同的值可以为不同的id测试不同的场景。我在某处读过,使用Subject更适合这个,而不是使用Observable。
因此,我改变了方法:
public static initializeComponent(callback: cucumber.IStepCallback): void {
let params = new Subject<Params>();
params.next([{'id': 5}]);
TestBed.configureTestingModule({
providers: [
{ provide: ActivatedRoute, useValue: {'params': params }}
]
});
希望在我的每个步骤定义,我可以改变的 'id' 参数”使用的值:
params.next([ {的 'id':6}]); params.next([{'id':7}]);
等
我的方法是否正确?如果是的话,它不起作用,甚至是第一次当我设置id为5。或者在方法中有问题,或者我可能错误地设置了 params.next?或者还有其他问题?我对这个东西并不是很熟悉,并且第一次尝试它,所以我不确定什么是错的。任何投入?
你能展示你的组件体吗?你在哪里听ActivatedRoute? –
我在上面添加了一个更新,显示了组件端的代码,以及它可以与Observable一起正常工作的事实。只有主题,它不起作用 – user1892775
你检查过文档吗?我回答了。 –