Angular 没有带“的指令;exportAs";设置为";cdkStep";
在我的规范中,我从karma/jasmin那里得到了这个错误: 没有将“exportAs”设置为“cdkStep”的指令 这是测试床配置:Angular 没有带“的指令;exportAs";设置为";cdkStep";,angular,unit-testing,jasmine,karma-jasmine,angular-cdk,Angular,Unit Testing,Jasmine,Karma Jasmine,Angular Cdk,在我的规范中,我从karma/jasmin那里得到了这个错误: 没有将“exportAs”设置为“cdkStep”的指令 这是测试床配置: TestBed.configureTestingModule({ declarations: [ StepsComponent ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }).compileComponents(); 总的来说,我的代码与这个Stackblitz示例非常相似:
TestBed.configureTestingModule({
declarations: [ StepsComponent ],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
总的来说,我的代码与这个Stackblitz示例非常相似:我知道这个问题在这里已经被问过多次了,但是没有一个是关于“cdkStep”的。
有人知道我错过了什么吗?该组件工作正常-只是我无法得到一个简单的
expect(component.toBeTruthy()代码>获得成功。您的组件依赖于cdk步骤
组件,一旦您将CdkStepperModule
导入该组件,该组件将在测试床
中可用
由于情况并非如此,angular在遇到cdk step
标记时不会创建CdkStep
的实例,因为关联未注册。因此,您将无法将这些模板变量绑定到CdkStep
的实例,因为这样的实例根本不存在
通常,angular会在遇到未知/自定义标记时通过抛出典型的来抱怨某些组件不是angular组件
,但由于您使用的是自定义元素模式
,因此跳过此检查
要使用cdk步骤
选择器注册cdk步骤
,您需要将设置重构为:
import { CdkStepperModule} from '@angular/cdk/stepper';
...
TestBed.configureTestingModule({
imports: [CdkStepperModule],
declarations: [StepsComponent]
}).compileComponents();
您可以添加您的测试床设置吗?添加了测试床设置!如果我导入CdkStep类,我会遇到另一个错误(导入了意外的指令“CdkStep”[…]),这不仅要感谢该解决方案,还要感谢您对它进行了如此广泛的解释,我现在明白了:-)
TestBed.configureTestingModule({
declarations: [ StepsComponent ],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
import { CdkStepperModule} from '@angular/cdk/stepper';
...
TestBed.configureTestingModule({
imports: [CdkStepperModule],
declarations: [StepsComponent]
}).compileComponents();