Angular 测试在初始化前无法访问服务

标签 angular unit-testing jasmine karma-jasmine karma-runner

我无法开始测试,因为它们一开始就失败并出现错误

Chrome 83.0.4103.61 (Linux x86_64) ERROR
  An error was thrown in afterAll
  Uncaught ReferenceError: Cannot access 'SomeService' before initialization
  ReferenceError: Cannot access 'SomeService' before initialization

... stack trace

事情是:

a) 这是一个单例服务和 providedIn: 'root'
b) 堆栈跟踪无处可去(它甚至包括完全注释掉的测试文件,因此没有一行代码。

c) 其他测试因此无法启动

d) 由于它们的数量,我无法开始禁用测试以找到起点。

我如何找到可能发生错误的位置以及可能导致此错误的原因?它可以连接到将 Karma、Jasmine 和规范报告器更新到他们软件包的最新版本吗?我正在使用 Angular 9

最佳答案

看来这是由于项目的“年龄”。它是从 Angular 6 开始的。根据 this comment emitDecoratorMetadata在配置中是原因。删除后一切正常...

关于Angular 测试在初始化前无法访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62079874/

相关文章:

javascript - 有没有办法检查源是否被订阅?

angular - Angular 2 模板中的渲染代码

JAVA - LocalDate.plusDay() 不能正常工作

javascript - 如何为类型类编写单元测试?

javascript - 如何将 Jasmine 单元测试结果作为字符串返回?

angular - 显示错误并恢复流

angular - 如何使用 Angular 2 访问 API?

c# - 犀牛模拟。如何添加订阅事件处理程序的期望

javascript - jasmine 部分字符串匹配

angular - fakeAsync 不适用于 debounceTime