我无法在单元测试中设置ActivatedRoute

时间:2019-04-21 00:34:57

标签: angular unit-testing jasmine karma-jasmine angular-activatedroute

我有一个要测试的函数,该函数是否有许多条件和依赖于ActivatedRoute值的switch语句。我需要在angular的单元测试中设置一个未订阅的ActivatedRoute,以便能够设置这两行:

component.route.snapshot.root.children[0].params["username"] = "user1";
component.route.snapshot.parent.firstChild.routeConfig.path = "kweeks";

该组件是我测试的组件,它具有一个名为(route)的公共变量,该变量具有(ActivatedRoute)数据类型,我尝试添加:

let route: any = {
snapshot: {
  root: {
    children: [
      {
        params: {
          username: String
        }
      }
    ]
  },
  parent: {
    firstChild: {
      routeConfig: {
        path: String
      }
    }
  }
}
};

component.route = route;

但是我在单元测试中出错:

TypeError: Cannot read property 'path' of undefined

更新问题已解决: 问题是我使用了另一行,但没有看到:

component.route.snapshot.parent.routeConfig.path = "home";

所以我将路线更新为:

  let route: any = {
    snapshot: {
      root: {
        children: [
          {
            params: {
              username: String
            }
          }
        ]
      },
      parent: {
        firstChild: {
          routeConfig: {
            path: String
          }
        },
        routeConfig: {
          path: String
        }
      }
    }
  };

0 个答案:

没有答案