我试图测试我的路由解析器,测试时我得到了TypeError: ctor is not a constructor,但不知道为什么会发生,而typescript编译时没有错误.

TypeError: ctor is not a constructor
TypeError: ctor is not a constructor
    at _createClass (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42355:26)
    at _createProviderInstance$1 (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42330:26)
    at resolveNgModuleDep (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42315:17)
    at _createClass (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42362:26)
    at _createProviderInstance$1 (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42330:26)
    at resolveNgModuleDep (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42315:17)
    at NgModuleRef_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.NgModuleRef_.get (http://localhost:9877/_karma_webpack_/vendor.bundle.js:43401:16)
    at TestBed.webpackJsonp../node_modules/@angular/core/@angular/core/testing.es5.js.TestBed.get (http://localhost:9877/_karma_webpack_/vendor.bundle.js:48412:47)
    at http://localhost:9877/_karma_webpack_/vendor.bundle.js:48418:61
    at Array.map (native)

推荐答案

这可能是提供程序声明中的错误.

当您试图模拟提供程序并使用useClass而不是useValue时,会触发错误"TypeError:ctor is not a structor".

以下是引发错误的示例:

providers: [{provide: OrderService, useClass: new OrderServiceMock()}]

正确的声明是:

providers: [{provide: OrderService, useValue: new OrderServiceMock()}]

Angular相关问答推荐

Angulat 17@ngrx/Signals或全球服务,用什么?

iOS Mobile Safari - HTML5视频覆盖一切

Angular 16未知参数:独立

使用注入的主机组件进行指令测试

从Angular 14更新到15个多边形.ts问题

存储服务存储在本地存储中,但无法检索到它

按Angular 从组件的 bootstrap 选项卡中删除活动类

在RxJS和ANGING中处理多个API调用

无法在单个元素上多次监听同一个事件

在ngOninit方法中直接VS初始化属性

在 Angular 14 中找不到命名空间google

ng14中具有强类型表单的FormBuilder

刷新页面导致 401 错误-Angular 8

Angular 2 二传手与 ngOnChanges

CORS 策略和 .NET Core 3.1 的问题

使用 NPM 安装 Font Awesome 5

react表单上的自定义验证器用于密码并确认密码匹配将未定义的参数导入 Angular 4

如何使用Angular4通过元素ID设置焦点

如何在 Angular2 中的所有请求的请求标头中发送Cookie?

此类通过 SomeModule -> SomeComponent 对消费者可见,但不会从顶级库入口点导出