jasmine 相关问题

Jasmine是一个用于测试JavaScript代码的行为驱动开发(BDD)框架。 Jasmine没有外部依赖,也不需要DOM。

Angular MSAL 单元测试服务调用另一个服务

我正在尝试测试调用另一个服务的服务。 我有 auth.service.ts,其中包含调用 MsalService.loginRedirect(); 的登录方法。 从'@angular/co...导入{注入,可注入}

回答 1 投票 0

与提供者一起测试组件

我有一个服务SoundPanelService,用于服务隔离场景(如https://angular.io/guide/hierarchical-dependency-injection#scenario-service-isolation) @Injectable() 出口CL...

回答 1 投票 0

角度测试茉莉花,ng-mocks

我不明白为什么我的服务没有被调用.. 在我的 BooklistComponent 中,我调用 ngOnInit ,它调用 initBooks() ,它调用 bookApiService getAll() 方法... 我的设置: 每个之前( ...

回答 1 投票 0

如何用Jamine编写参数化测试?

如何使用 Jasmine 单元测试框架(或任何其他 BDD JavaScript 测试框架)编写参数化测试?

回答 3 投票 0

如何测试返回的Observable是否为EMPTY

我有一个效果,在一种情况下返回一个 EMPTY Observable。我正在尝试测试这个案例,但我似乎无法弄清楚如何测试 EMPTY Observable? 我的代码如下: 效果: 效果...

回答 3 投票 0

如果实现已订阅它,如何测试 Observables 抛出错误(使用 throwError)?

假设我有一个带有以下 HTML 的 Angular 组件(摘录): 假设我有一个带有此 HTML 的 Angular 组件(摘录): <some-thirdparty-component (onClickCallback)="handleChange($event)" 我有一个函数可以处理这个问题。它将其转发到 service.saveSomething (返回一个 Observable)。够简单的。作为一个包装组件,我需要 subscribe,因为我显然想让它执行。 public handleChange(event: any) { this.assignmentService.saveSomething(event) .pipe(takeUntil(this.ngUnsubscribe)) // additional error handling may be piped here .subscribe(); } 假设我想测试一下。特别是,我想测试错误情况,即当它(又名保存或其他)失败时: let dataMock = {}; it('should throw error', waitForAsync(() => { const error = new Error('test error'); spyOn(service, 'saveSomething').and.returnValue(throwError(error)); expect(() => { component.handleChange(dataMock); }).toThrow(); expect(service.saveSomething).toHaveBeenCalledOnceWith(dataMock); expect(toastService.showToast).toHaveBeenCalledOnceWith(/** **/); // an additional error handling in the pipe to test in a different implementation })); 问题是测试失败,在此版本中显示“预期函数会抛出异常。”。 当我将其更改为不希望抛出错误时: component.handleChange(dataMock); 然后 jasmine 实际上抛出了一个错误,这使得测试失败: 错误:main.js 中测试错误 我已经将它包裹在waitForAsync中,这在这种情况下通常很有用。 我的猜测是,问题是由于 Observables 的工作方式,抛出异常以异步方式发生。 Observable 错误被转换为 JS Error 并被抛出。然而,我无法通过 jasmine toThrow 捕捉到这个,因为它发生在最后,即通过 waitForAsync 并且只在那里捕捉到。但现在断言已经太晚了。 此外,我无法公开 Observable(这是通常的方式),因为有人需要以高效的代码进行订阅。只是出于测试原因而暴露它,对我来说似乎也不干净。 有点像先有鸡还是先有蛋的问题... 那么遇到这种情况该怎么办? 如果我理解您关于可观察量问题的问题,我个人会做类似的事情,关于调用可观察量并在您的代码库中订阅它们以及错误抛出/处理逻辑。 public handleChange(event: any) { this.assignmentService.saveSomething(event) .pipe(takeUntil(this.ngUnsubscribe)) .subscribe({ next: (value: any) => { console.log(value, 'success!!!'); }, error: (err: any) => { console.error('error detected, printing out the output error msg:', err); } }); } 希望我正确理解你的问题,上面的代码是处理可观察值和订阅输出的错误的好方法。如果您的问题与如何处理 jasmin 错误有关,我个人没有使用过 jasmin,但您可以尝试使用此代码来实现它。 希望这有帮助!祝你有美好的一天! :) :) :)

回答 1 投票 0

如何让Jasmine 5创建HTML报告?

我正在尝试找到一种方法来运行 Jasmine 5 测试,并从中获取有意义的 HTML 报告。我在 Karma 上看记者,但由于我使用 Jasmine 进行 API 测试,所以我没有用...

回答 1 投票 0

如何为另一个 npm 库中调用的静态方法创建 Spy?

鉴于我在 Angular 服务中有一个像这样的方法: 公共 logException(错误:错误,方法名称?:字符串){ if (!方法名) { 方法名 = this.extractCallerName(error.stack); ...

回答 3 投票 0

关于多个 mat-select 和 mat-option 的测试用例

it('当 control1 更改为“b”时应该更新 control2 选项', (() => { const control1Select = Fixture.nativeElement.querySelector( 'mat-select[formControlName="control1&q...

回答 1 投票 0

Angular Jasmine Form控制单元测试值变化

我想对我的以下方法进行单元测试: this.boxValue = ''; subscribeToFilterChanges(): void { this.filterBox.valueChanges 。订阅( 数据=> { 如果(数据){ 这个。

回答 1 投票 0

即使配置正确的间谍,Angular 单元测试也会失败

我的组件如下所示: 构造函数( 私有只读dialogRef:MatDialogRef, 私有只读角色服务:RolesService, 私有只读

回答 1 投票 0

有没有用于茉莉花角度控制器测试的生成器?

我正在寻找能为角度控制器生成样板茉莉花测试的东西。看来您可以将控制器的依赖项拉出来并将它们放入规范中并保存...

回答 5 投票 0

如何生成诱惑报告

我是魅力报告的新手,想要生成魅力报告。有人能帮忙吗? 我正在尝试一个简单的示例,我的项目文件夹包含 config.js 和 test.js 以及 allure r...

回答 5 投票 0

Angular(TypeScript):使用“ng test”时出错 | Karma/Jasmine:断言错误 [ERR_ASSERTION]:编译不能未定义

我使用 Angular (TypeScript) 角度 15.1.0 节点版本:19.7.0 npm:9.5.1 当我使用 ng test 时出现错误: 错误 : ⠙ 生成浏览器应用程序包(阶段:设置)...节点:内部/

回答 2 投票 0

spyOn 和 createSpyObj 在同一规范 jasmine 中

我正在使用 Jasmine 来测试这个 X 类{ 测试(对象){ 返回 obj.someFunction()+100 } } 所以我的规格是 it("测试某个函数是否被调用并且返回值计算是否正确",()=&...

回答 1 投票 0

如何在测试usng jasmine时模拟ngrx工厂选择器

我正在使用 ngrx 存储进行状态管理,并为使用工厂选择器的组件编写测试用例,在测试用例中我需要传递模拟数据 客户选择器.ts 导出常量

回答 1 投票 0

类型错误:无法读取 null 的属性“令牌”

我有这项服务从 ws 返回所有城市。 @Injectable() 导出类 CityService { 构造函数(私有http:Http,私有路由器:路由器, 私人身份验证:AuthService) { } 公共获取...

回答 1 投票 0

如何为 Angular2 的登录组件编写测试(单元测试)

这是login.component.ts 从 '@angular/core' 导入 { Component, OnInit }; 从“@Angular/router”导入{ Router,ActivatedRoute }; 导入 { FormBuilder, FormGroup, Validators } from...

回答 1 投票 0

如何测试 Jasmine、Angular 中的声明[] 中从子级发送到父级的事件

我有一个很大的 .spec 文件,用作(我们称之为)MainComponent 的集成测试。声明包含多个子组件及其子组件。我担心...

回答 1 投票 0

在 Visual Studio 代码中运行 Angular Karma 测试

我将 vscode-test-explorer 扩展及其子 Angular-karma-test-explorer 和 jasmine-test-adapter 安装到 vscode,如此处所回答。 但是,测试资源管理器中没有加载任何测试,它

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.