Jasmine是一个用于测试JavaScript代码的行为驱动开发(BDD)框架。 Jasmine没有外部依赖,也不需要DOM。
我将所有 Angular 组件转换为独立组件。但是,我的单元测试遇到了问题。之前有效的测试现在失败了。 我尝试通过模拟
如何测试 Observable 不会在包含异步逻辑的 Angular 组件中发出
假设我有一个 Angular 组件,它将 Observable myObs$ 定义为其属性之一。 在一项测试中,在给定某些条件的情况下,我想测试 myObs$ 是否不通知。在逻辑上...
在我的 Angular 17 应用程序中,我有一些锚元素,它同时具有用于导航的 href 和单击处理程序。我不担心测试 href,但我正在尝试写一个简单的“应该...
我在 ngAfterViewInit 下有一个代码无法覆盖条件/分支 由于我需要 100% 覆盖新代码,请给我建议(目前为 68%) 尝试了一些测试但没有覆盖分支
将 routerLink 放在 Angular 模板上后,Jasmine/Karma 错误“TypeError:无法读取未定义的属性(读取“事件”)”错误
我正在尝试在我的 Angular 应用程序中进行一些测试,但是当我使用 routerLink 添加此行时,测试给出了错误: 我正在尝试在我的 Angular 应用程序中进行一些测试,但是当我使用 routerLink 添加这一行时,测试给出了错误: <a class="nav-link" routerLink="../loja-lista" role="tab" type="button"> <fa-icon [icon]="faArrowLeft" style="font-size: x-large; color: #225262"> </fa-icon> </a> package.json: "@angular/common": "^15.2.9", "@angular/compiler": "^15.2.9", "@angular/core": "^15.2.9", ... ... "jasmine-core": "~4.0.0", "karma": "~6.3.0", "karma-chrome-launcher": "~3.1.0", "karma-coverage": "~2.1.0", "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "~1.7.0", 错误 TypeError: Cannot read properties of undefined (reading 'events') TypeError: Cannot read properties of undefined (reading 'events') at new RouterLink (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/router/fesm2020/router.mjs:5711:40) at NodeInjectorFactory.factory (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/router/fesm2020/router.mjs:5865:16) at getNodeInjectable (http://localhost:9876/_karma_webpack_/webpack:/node_modules/@angular/core/fesm2020/core.mjs:3431:44) ... 这是我的四个测试,在模板中没有 RouterLink 的情况下也能正常工作: import { ComponentFixture, TestBed } from '@angular/core/testing'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { ActivatedRoute, Router } from '@angular/router'; import { LOJAApi } from 'my-lib'; import { EdicaoComponent } from './edicao.component'; describe('EdicaoComponent', () => { let component: EdicaoComponent; let fixture: ComponentFixture<EdicaoComponent>; let lojaService: LOJAApi; let router: Router; let route: ActivatedRoute; beforeEach(async () => { await TestBed.configureTestingModule({ imports: [HttpClientTestingModule, RouterTestingModule, EdicaoComponent], providers: [ { provide: LOJAApi, useValue: lojaService }, { provide: Router, useValue: router }, { provide: ActivatedRoute, useValue: route }, ], }).compileComponents(); fixture = TestBed.createComponent(EdicaoComponent); component = fixture.componentInstance; lojaService = TestBed.inject(LOJAApi); }); it('should create', () => { expect(component).toBeTruthy(); }); it('should return all phone info', () => { component.edicaoForm.value.DDD_FONE = null; component.edicaoForm.value.FONE = null; expect(component.getPhone()).toBe('00 000000000'); }); it('should return DDD', () => { component.edicaoForm.value.TELEFONE = '11999999999'; expect(component.handleDDD()).toBe('11'); }); it('should return phone', () => { component.edicaoForm.value.TELEFONE = '11999999999'; expect(component.handlePhone()).toBe('999999999'); }); }); 您的 routerLink 上缺少括号。 [routerLink]="'../loja-lista'" role="tab" type="button"> https://angular.io/api/router/RouterLink
在 Angular 服务中对 http 请求进行单元测试重试
我正在尝试在不使用 for 循环的情况下测试失败的 httpClient post 请求的重试,并且我很难找到这样做的示例。大多数解决方案似乎都显示了 for 循环方法。 哈...
使用 Jasmine 对 Ionic Angular 中的 IonInput 参数进行单元测试:无法读取未定义的属性(读取“应用”)
在自定义输入组件内的这个 setter 中,我想在 Jasmine 中进行通过 getInputElement 函数的测试。 @ViewChild('自定义输入') 公共设置自定义输入(值:IonInput){...
Angular Material 和 Jasmine:“没有 InjectionToken MdDialogData 的提供者!”
我有一个用于 Angular Material MdDialog 的组件: @成分({ ... }) 导出类 MyComponent { 构造函数(@Inject(MAT_DIALOG_DATA)公共数据:任何,公共拨号...
我的拦截器看起来像这样: 从 '@angular/core' 导入 { Injectable } ; 进口 { Http拦截器, Http请求, HttpHandler, Http事件, Http错误响应 来自 '@angular/common/http'; ...
为什么 BehaviourSubjects 的 `combineLatest` 上的 `.pipe` 未定义?
在 Angular 10 应用程序中,我有一个服务类: @Injectable() 导出类 MyService { 私有只读 bSubject1$:BehaviorSubject = newBehaviourSubject(null);
我正在尝试测试是否从 ngOnInit 调用服务方法。但是,我得到了一个奇怪的行为:尽管执行了 ngOnInit,但并未调用该方法。 从 '@angular/core' 导入 { Component } ;
Angular 16 路由保护单元测试可观察的 createSpyObj 属性
尝试熟悉路线守卫的单元测试。我有一个相对直接的防护,它从主题 asObservable 获取值到 createUrlTree 或返回布尔值。 在...
Jasmine:Angular Typescript 项目中的“不完整:未找到规范”
出于某种我无法理解的原因,Karma 说 Jasmine 找不到我的任何测试规格。我使用 Angular 9、Typescript 和 ng test 来运行测试。我还运行 jasmine init 来创建 jasm...
如何测试 matTooltip 是否在 Angular Material 中正确禁用?
我有一个循环创建多个 matCard 元素。这些代表事件。其中一些已经成为过去。我给它们一个类来将它们变灰,并添加一个 matTooltip 来解释这意味着什么。 <...
如何防止 window.open(url, '_blank') 在 jasmine 单元测试期间实际打开
当我尝试测试 window.open(url, '_blank') 时,它会在测试过程中自动在浏览器中打开一个新选项卡。有什么办法可以防止这种情况发生吗? 就像,尝试打开一个新...
我想对一些存储为模块的 ES6 类进行单元测试。但是,当我尝试运行测试时,导入会触发错误消息:无法在模块之外使用导入语句,这意味着我...
我使用 webpack 3 进行了 jasmine 测试。现在我尝试将它与 webpack 4 一起使用,但遇到了一些问题。 首先我遇到了间谍功能的问题。 错误::myFunction 未声明为...
我有一个服务(服务1),它在内部从另一个服务(服务2)返回数据。因此,在返回数据之前,我们在服务 1 中进行数据检查。 `getuserImageUrl(Id: number): Observable<
在角度文档中,我看到这两个函数,tick() 和flush()。这两者似乎都做类似的事情。从角度文档来看,它说: 模拟异步
我在组件的 ngOnInit() 中有以下服务调用.. ngOnInit(){ this.accountTypeService.SetAccountType(AccountTypeEnum.Savings); } 这是相同的单元测试:- 它('应该调用