Angular测试中无法更新Mock数据导致测试用例失败的问题求助
Angular测试中无法更新Mock数据导致测试用例失败的问题求助
我在写Angular组件测试的时候碰到个头疼的问题,想请教下大家怎么解决。
我一开始在测试里这样Mock了DataTeamService:
dataTeamService = jasmine.createSpyObj('DataTeamService',['setDataGroup'],{ selectValGroup: of({ id : 1, accessData : false }) });
第一个测试用例是验证当accessData为false时,组件的tabs只保留「Value Management」这一项,这个用例顺利跑通了:
it('should remove valData when accessData is false',()=>{ fixture.detectChanges(); expect(component.tabs).toEqual([{url: 'view', label : 'Value Management'}]) });
可到了第二个测试用例,我想验证当accessData为true时,tabs要多出「Value Contact」这一项,但不管怎么试都失败——因为accessData的值一直是false,根本没改成true:
it('should add valData when accessData is true',()=>{ fixture.detectChanges(); expect(component.tabs).toEqual([{url: 'view', label : 'Value Management'}, {url: 'valData', label : 'Value Contact'}]) });
我已经试过两种方法,但都没成功:
- 把整个Mock代码复制到第二个测试用例里,没用
- 尝试在第二个测试里重新定义Mock,但
selectValGroup提示是只读属性,没法修改它的返回值
有没有大佬能告诉我,怎么在不同的测试用例里给这个Mock服务设置不同的selectValGroup返回值呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

