【问题标题】:Finding where and why [object ErrorEvent] is being thrown查找 [object ErrorEvent] 被抛出的位置和原因
【发布时间】:2018-08-08 07:31:10
【问题描述】:

我有 1 个测试失败,日志没有任何帮助,除了告诉我是哪个测试失败...

LoginComponent should display username & password error message and not call login when passed nothing FAILED
    [object ErrorEvent] thrown
    [object ErrorEvent] thrown

有什么方法可以追踪错误的来源吗?

我尝试使用ng test --source-map=false/true 进行测试,但似乎没有任何改变。

我再次运行 --watch 以检查是否可以在我的 Chrome 窗口上打开控制台以获取更多信息,它指出 form.reset is not a function 所以我评论了这一行,但我仍然遇到同样的错误我来自同一测试的[object ErrorEvent] thrown 日志,但是现在Chrome Karma 窗口不显示form.reset 错误,而只是:Uncaught Error: The requested path contains undefined segment at index 0

【问题讨论】:

  • 您是否尝试获取两个抛出的错误对象并查看它们?通常它们应该会有所帮助
  • 这是我的麻烦。仅仅在 IntelliJ 控制台中获取 [object ErrorEvent] 对我来说简直是无用的!然而,在应用--watch 之后在 Karma 控制台中挖掘之后,我确实认为我找到了可能的原因。看起来this.returnUrl 未定义并由于某种原因导致问题。

标签: javascript angular typescript


【解决方案1】:

两种解决方案:

  • 在您的测试中使用命令ng test --source-mapping=false禁用源映射

  • 打开浏览器的控制台,它会显示真正的错误。

【讨论】:

  • 是的,这仍然给了我相同的输出。我无法让 Karma 窗口保持打开状态,因此我不得不使用 --watch。你能看看我刚刚提交的答案,看看它是否有意义?
  • karma.conf.js 中,您可以设置autowatch: true 以自动监视更改。其实这是默认配置……我在看你的回答。
【解决方案2】:

Karma 控制台似乎确实打印出了一个有用的错误:Uncaught Error: The requested path contains undefined segment at index 0

我追溯了这一点,似乎问题在于我的路由到this.returnUrl,它是undefined。所以我在我的声明中实例化了它:returnUrl: string = '';BOOM,没有更多错误并且路由仍然按预期工作。

我不确定这是否是正确的解决方法,但暂时是一种解决方法。

【讨论】:

  • 鉴于您的代码和测试,它的工作原理很奇怪......但如果它对你有好处! (这不是一种解决方法,而是一种完全有效的解决问题的方法)
  • 现在我只需要弄清楚为什么它认为 form.reset() 或 form.resetForm() 不是有效函数 >:(
  • emptyForm 没有实现它们
  • 你能澄清一下@trichetriche吗?我在测试中检查了实际表单中的日志与我发送的“假”,它们的结构不同,所以我有点理解你的意思。但是有没有办法解决这个问题?
  • const emptyForm = <NgForm>{ reset: () => null, resetForm: () => null, ... }。模拟模拟中的函数。
猜你喜欢
  • 1970-01-01
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 2011-10-05
  • 1970-01-01
相关资源
最近更新 更多