Karma-Jasmine是Jasmine测试框架的适配器,默认情况下随Karma一起提供。
我有一个简单的组件,可以将粘贴事件处理到表单输入中。 形式: this.searchForm = this.formBuilder.group({ 查询:[ null,[Validators.required] ] }); onPaste(事件){ 活动。
我刚刚将我的应用程序 Angular 版本从 Angular 15 迁移到 Angular 18。 应用程序运行正常,但当我将已弃用的 httpClientModule 版本切换为 ProvideHttpClient 时,我的测试开始失败(
Angular 4 - 失败:无法解析 ActivatedRoute 的所有参数:(?, ?, ?, ?, ?, ?, ?, ?)
我已参考以下链接来获取答案,但我找不到适合我的场景的任何可行解决方案。 错误:(SystemJS) 无法解析 ActivatedRoute 的所有参数:(?, ?, ?, ?,...
我开始将 Angular 18 应用程序迁移到独立组件,并且遇到了覆盖各种导入的问题。我正在使用 Angular 18、Material、NGMocks、Spectator(作为测试台替代品)...
Gulp + karma + jasmine + Angular + singleRun:true = Angular 注入失败
我在通过 Karma 和 Gulp 运行 Jasmine 测试时遇到问题,我通过 gulp 任务运行测试 返回新的 karma.Server({ 配置文件:__dirname + '\karma.conf.js', 单次运行:
Angular 单元测试:无法读取未定义的属性(读取“ɵcmp”)
我正在尝试为 Angular (v18) 应用程序的组件开发测试。 该组件是独立的,文件规范文件是自动生成的,我仅添加了该组件所需要的服务...
更新 karma-jasmine 中使用的 Jasmine 版本
问题 使用 karma-jasmine 插件通过 Karma 运行 Jasmine 时,如何更新所使用的 Jasmine 版本? Jasmine 只会在 karma-jasmine 插件集成 n...
如何在 jasmine 角度框架中测试在订阅时多次发出的 observable
我有一个服务product.service.ts 产品服务类 { 公共产品$:Observable = from(['prod1','prod2','prod3','prod4']); } 我想要
如何在 Angular 中测试 form.valueChanges?
如何正确进行单元测试(Karma、Jasmine),valueChanges 的发射会调度 FormUpdated 操作? beforeEach(异步(() => { TestBed.configureTestingModule({ 进口:[...],
Angular 单元测试失败,错误:NG0205:注入器已被破坏。在http://localhost:9876/_karma_webpack_/vendor.js(第59623行
我们将 Angular 应用程序从版本 16 升级到 18。升级后,我们的单元测试开始失败,并出现以下错误。 错误:NG0205:喷油器已被破坏。在 http://localhost...
我正在使用 Angular CLI 和 VSCode,但是当我运行 ng test 时,我的规范文件中的断点似乎都没有被命中? 我需要做一些配置吗?
Angular 测试无法在 Github Action 中使用 ChromeHeadlessCI 运行
我引导了一个简单的 Angular (v10.1) 应用程序并创建了 Github 操作工作流程,如下所示。请注意,我已将测试配置为使用 Angular 测试文档中指定的推荐配置运行 # ./...
问题 (1)我无法找到在单元测试中触发服务调用的方法,该调用应该在给出输入时触发。 (2)输出的长度可以根据输入和长度来确定...
有什么方法可以在 Nx 工作空间中运行特定的角度规格测试文件吗? 最近,我将 Angular 4 cli 应用程序移至 Nx 工作空间。 以前我使用 fdescribe 来实现此目的
Angular 项目 Karma/Jasmine 在 Ubuntu 上的 Google Chrome 下的 GitHub Action 上测试失败
在我的 Angular 项目中,我尝试使用 Google Chrome 在 GitHub Action 中使用 Karma 和 Jasmine 进行测试。 Google Chrome 启动时出现多个错误,然后在经过一些测试后死机。我尝试了几个
我在组件中使用的服务方法有一个回调作为第二个参数。当执行此回调时,它会返回一个分配给组件中变量的值。 我是...
我有一个 Angular 服务,它依赖于另一个服务,该服务有一个属性,它是一个包含我想要监视的方法的对象。 @Injectable({ 提供于:'root' }) 导出类 MyServi...
我无法区分 TDD 和 BDD。有人可以举一个简单的例子来说明使用 jasmine 在 javascript 上下文中的差异吗?
如何测试 Angular 2 组件,其中嵌套组件具有自己的依赖项? (TestBed.configureTestingModule)
我有一个组件 A,它在其模板中使用组件 B、c、D: ###template-compA.html 我有一个组件 A,在其模板中使用组件 B、c、D: ###template-compA.html <comp-b></comp-b> <comp-c [myinput]="obj.myinput"></comp-c> <comp-d ></comp-d> ...等等 为了简化,假设它们只是组件 A 中的一个指令: ###template-compA.html <comp-b></comp-b> 我的 comp-b 有自己的依赖项(服务或其他 comp)。 如果我想这样测试 comp-a: TestBed.configureTestingModule({ declarations: [comp-A], imports: [ReactiveFormsModule], }).overrideComponent(FAQListComponent, { set: { providers: [ { provide: comp-AService, useValue: comp-AListSVC } ] } }) .compileComponents(); 它将无法正常工作。所以我这样做: TestBed.configureTestingModule({ declarations: [comp-A, comp-B], imports: [ReactiveFormsModule], }).overrideComponent(FAQListComponent, { set: { providers: [ { provide: comp-AService, useValue: comp-AListSVC } ] } }) .compileComponents(); 它也不起作用,因为 comp-b 没有自己的依赖项。在这里我很困惑,如果我每次都必须导入和重新模拟所有其他组件,我该如何进行单元测试?看起来工作量非常大。还有别的办法吗?使用具有自己的依赖项的嵌套组件测试组件的最佳实践是什么? 非常感谢, 史蒂芬。 如果您不需要在测试中以任何方式引用 comp-b,您可以将 schemas: [NO_ERRORS_SCHEMA] or [CUSTOM_ELEMENTS_SCHEMA] 添加到 TestBed 配置中,或覆盖 comp-A 的模板并删除 comp-b 的标签 如果您确实需要引用comp-b,您可能不需要在覆盖中专门提供它的依赖项。 仅当组件本身提供依赖项时,才需要在 providers 中设置 overrideComponent。 (如果您有 comp-A.ts 中的提供商列表) 假设 comp-b 需要 comp-AService 并且 comp-AService 正在您的 comp-A 覆盖中提供,因为 comp-b 是 comp-A 的子级,它将为其提供 comp-AService。 如果您在 app.module 或高于组件本身的位置提供这些依赖项,则无需覆盖。例如,如果 comp-b 需要 comp-AService 和 someOtherService,它们都在您的 app.module 中提供,您的 TestBed 配置可能如下所示: TestBed.configureTestingModule({ declarations: [comp-A, comp-B], imports: [ReactiveFormsModule], providers: [ { provide: comp-AService, useValue: comp-AListSVC }, { provide: someOtherService, useValue: someOtherServiceSVC } ] }) 编辑: 您可以在此处阅读有关嵌套组件测试的更多信息: https://angular.io/guide/testing-components-scenarios#nested-component-tests 遵循@yurzui 的建议: beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [comp-a], schemas: [NO_ERRORS_SCHEMA] }) .compileComponents(); })); 这是一个老问题,但这就是我目前在 Angular 9 中所做的事情。 由于您希望尽可能地隔离测试组件,因此您可以创建一个返回要导入的假组件的函数,而不是实际的嵌套组件: function mockComponent(selector: string) { @Component({ selector, template: '' }) class MockValueAccessorComponent { // [mock implementation here] } return MockValueAccessorComponent; } 然后将其导入到您的 TestBed 中,如下所示: TestBed.configureTestingModule({ declarations: [ TestUtils.mockComponent('component-template-to-mock'), ] }); 还有另一种方法是创建一个模拟 b 组件并将其导入到组件 a 中 @Component({独立: true, 模板: '', 选择器: 'comp-b' }) 导出类 CompBComponent { } TestBed.configureTestingModule({ 进口:[ 组合B组件 ] });
未捕获的语法错误:运行 karma 测试时无法在模块外部使用 import 语句 + 3 个 TCONFIG 文件之间的差异
尝试运行我的规范文件时,我在控制台中收到此错误: 未捕获的语法错误:无法在模块外部使用 import 语句 我的 tsconfig.spec 看起来像这样: { “扩展”:“../