微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Angular Routing 组件测试

如何解决Angular Routing 组件测试

我正在阅读来自 here 的角度路由测试的官方示例。我不明白 heroClick() 是如何触发点击的。

it('should tell ROUTER to navigate when hero clicked',() => {
  heroClick(); <------- how does this work !?  // trigger click on first inner <div class="hero">

  // args passed to router.navigateByUrl() spy
  const spy = router.navigateByUrl as jasmine.Spy;
  const navArgs = spy.calls.first().args[0];

  // expecting to navigate to id of the component's first hero
  const id = comp.heroes[0].id;
  expect(navArgs).toBe('/heroes/' + id,'should nav to HeroDetail for first hero');
});

这是 stackblitz 示例的link

解决方法

heroClick 是传递给第 84 行中的 tests() 函数的参数。它是一个不接受任何参数且不返回任何内容的函数。在第 120 行,heroClick() 调用传递给 tests() 的任何内容。

在第 27 和 48 行调用 tests(),传递不同的函数 clickForShallowclickForDeep,在它们的用法下方定义。这些函数通过与组件中的元素交互来模拟点击。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。