You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular单元测试中Mock数据赋值数组出现undefined错误如何解决?

问题根因
  • 你构造ActivatedRoute的Mock数据时,给groupsResponse的值多套了一层不必要的数组:
    你当前的写法为data: of({groupsResponse: [mockGroupsResponse]}),这使得组件中data['groupsResponse']拿到的是数组类型,而非你预期的IGroupsResponse对象。数组不存在groups属性,自然会返回undefined。
    线上环境Resolver直接返回IGroupsResponse对象,没有外层数组包裹,所以运行无异常。
修复方法

删除groupsResponse值外层的数组包裹即可,修改后的Mock配置如下:

activatedRouteMock = {
  data: of({groupsResponse: mockGroupsResponse})
};

修改后data['groupsResponse']会直接返回你定义的带groups属性的IGroupsResponse对象,this.groups就能正确赋值为你准备的mockGroups数组。

内容的提问来源于stack exchange,提问作者Elvis Shrestha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:54:04