如何使用 Angular 4 Jasmine 单元测试用例覆盖 IF/ELSE 条件

     2023-03-16     190

关键词:

【中文标题】如何使用 Angular 4 Jasmine 单元测试用例覆盖 IF/ELSE 条件【英文标题】:How to cover IF/ELSE condition with Angular 4 Jasmine unit test case 【发布时间】:2018-05-24 19:55:23 【问题描述】:

帮助我覆盖 IF/Else 覆盖范围和返回 HTTP 响应的方法以及构造函数以覆盖 Jasmine 单元测试用例的路由器和 Appconfig 服务的分支覆盖范围

【问题讨论】:

【参考方案1】:

您可以使用 MockBackend 模拟 http 响应 参考:https://angular.io/api/http/testing/MockBackend

您可以轻松定义自己的响应并测试所有 if/else

// before each test 
beforeEach(() => 
    this.injector = ReflectiveInjector.resolveAndCreate([
      provide: ConnectionBackend, useClass: MockBackend,
      provide: RequestOptions, useClass: BaseRequestOptions,
      Http,
      // other dependencies like Router / AppConfig
    ]);
    this.authenticationService = this.injector.get(AuthenticationService);
    this.backend = this.injector.get(ConnectionBackend) as MockBackend;
    this.backend.connections.subscribe((connection: any) => this.lastConnection = connection);   
);


// in your test
const mockErrorResponse = status: 200;
this.lastConnection.mockRespond(new Response(new ResponseOptions(body: JSON.stringify(mockErrorResponse))));
tick();

【讨论】:

如何使用 Jasmine 为私有方法编写 Angular / TypeScript 单元测试

】如何使用Jasmine为私有方法编写Angular/TypeScript单元测试【英文标题】:HowtowriteunittestingforAngular/TypeScriptforprivatemethodswithJasmine【发布时间】:2016-06-2911:06:28【问题描述】:如何在Angular2中测试私有函数?classFooBarprivate_status:number;co... 查看详情

使用 Jasmine 进行 Angular 单元测试:如何删除或修改 spyOn

】使用Jasmine进行Angular单元测试:如何删除或修改spyOn【英文标题】:AngularunittestingwithJasmine:howtoremoveormodifyspyOn【发布时间】:2015-05-0311:55:14【问题描述】:AngularJSv1.2.26茉莉花v2.2.0如何更改或删除spyOn的行为?当我尝试覆盖它时... 查看详情

在 Angular 中使用 Jasmine 使用 *ngIf 指令时,如何对元素是不是可见进行单元测试

】在Angular中使用Jasmine使用*ngIf指令时,如何对元素是不是可见进行单元测试【英文标题】:HowdoIunittestifanelementisvisiblewhenthe*ngIfdirectiveisusedusingJasmineinAngular在Angular中使用Jasmine使用*ngIf指令时,如何对元素是否可见进行单元测试【... 查看详情

Jasmine 使用 Angular 中的 TypeScript 对文件大小进行单元测试

】Jasmine使用Angular中的TypeScript对文件大小进行单元测试【英文标题】:JasmineunittestforfilesizewithTypeScriptinAngular【发布时间】:2019-01-1513:27:13【问题描述】:寻找最佳实践如何在inputtype="file"更改事件上测试文件大小。现在我的测试... 查看详情

Angular 7:如何在 Jasmine 单元测试中解决 Hammer.js 依赖项

】Angular7:如何在Jasmine单元测试中解决Hammer.js依赖项【英文标题】:Angular7:HowtoresolveHammer.jsdependencyinJasmineunittest【发布时间】:2020-11-0306:31:24【问题描述】:在为使用MaterialSlider并依赖HammerJS的组件编写单元测试时,我看到此错... 查看详情

如何在 Angular 7 中使用 Karma/Jasmine 为 App_Initializer 编写单元测试用例

】如何在Angular7中使用Karma/Jasmine为App_Initializer编写单元测试用例【英文标题】:howtowriteunittestcasesforApp_InitializerusingKarma/Jasmineinangular7【发布时间】:2019-06-3002:41:22【问题描述】:我已经在我的app.module.ts文件中导入了APP_INITIALIZER... 查看详情

如何在不使用 Angular 的 spyOn 的情况下检查服务中的方法是不是在 Jasmine 单元测试中被调用?

】如何在不使用Angular的spyOn的情况下检查服务中的方法是不是在Jasmine单元测试中被调用?【英文标题】:HowtocheckifamethodfromaserviceiscalledornotinJasmineunittestingwithoutusingspyOninAngular?如何在不使用Angular的spyOn的情况下检查服务中的方法... 查看详情

如何使用 angular9 和 Jasmine 为所有组件生成 .pdf 格式的单元测试用例代码覆盖率报告

】如何使用angular9和Jasmine为所有组件生成.pdf格式的单元测试用例代码覆盖率报告【英文标题】:Howtogenerateunittestcasecodecoveragereportin.pdfforallcomponentsusingangular9andJasmine【发布时间】:2021-06-2104:04:18【问题描述】:.html格式的Angular支... 查看详情

使用 Karma Jasmine 的 Angular 1.5 组件模板单元测试

】使用KarmaJasmine的Angular1.5组件模板单元测试【英文标题】:Angular1.5ComponenttemplateunittestwithKarmaJasmine【发布时间】:2017-09-1522:06:34【问题描述】:我正在尝试使用KarmaJasmine对Angular组件和模板进行单元测试。我正在使用ng-html2js测试... 查看详情

使用 jasmine 和 karma 进行单元测试时形成数组错误

...rma【发布时间】:2021-01-1909:04:36【问题描述】:我正在为Angular应用程序版本9编写单元测试用例。但我遇到了错误。TypeError:无法读取未定义的属性“get”如何监视getFormControls方法,否则我必须使用spyonproperty,我 查看详情

如何使用 Angular 和 Jasmine 模拟 socket.io

】如何使用Angular和Jasmine模拟socket.io【英文标题】:Howtomocksocket.iowithAngularandJasmine【发布时间】:2015-05-0422:40:53【问题描述】:我无法弄清楚如何使用Jasmine和Karma在Angular应用程序中正确模拟Socket.io。这是在karma.conf.js中找到的文... 查看详情

如何测试使用 jasmine + TypeScript 使用常量调用的函数

...布时间】:2016-11-2915:39:35【问题描述】:我正在开发一个Angular2/TypeScript项目并使用jasmine进行单元测试。如何测试使用jasmine以常量调用的函数。例如。Logo.ts 查看详情

如何模拟在 AngularJS Jasmine 单元测试中返回承诺的服务?

】如何模拟在AngularJSJasmine单元测试中返回承诺的服务?【英文标题】:HowdoImockaservicethatreturnspromiseinAngularJSJasmineunittest?【发布时间】:2014-07-0511:36:08【问题描述】:我有myService使用myOtherService,它进行远程调用,返回承诺:angula... 查看详情

如何使用 karma/jasmine 在 angularAMD 中模拟服务?

】如何使用karma/jasmine在angularAMD中模拟服务?【英文标题】:HowtomockserviceinangularAMDwithkarma/jasmine?【发布时间】:2014-12-1223:44:13【问题描述】:我有一个使用AngularAMD/RequireJS/Karma/Jasmine的项目,我的基本配置一切正常,大多数单元... 查看详情

如何在 Angular 中使用 Jasmine 测试 RxJS switchMap?

】如何在Angular中使用Jasmine测试RxJSswitchMap?【英文标题】:HowtotestRxJSswitchMapwithJasmineinAngular?【发布时间】:2022-01-1611:45:10【问题描述】:在我的Angular项目中,我的一个组件中有这段代码:delete(post:PostInterface):voidconstdelete$=this.app... 查看详情

如何使用 Jasmine 为以下 javascript 函数编写单元测试用例

】如何使用Jasmine为以下javascript函数编写单元测试用例【英文标题】:HowtowriteUnitTestCaseforbelowjavascriptfunctionusingJasmine【发布时间】:2019-04-1303:24:37【问题描述】:如何使用Jasmine为下面的javascript函数编写单元测试用例?functionGetURL... 查看详情

使用 jasmine、chutzpah 和 webpack 进行 Typescript 单元测试

...布时间】:2017-06-2102:10:58【问题描述】:我正在尝试使用Angular2、Webpack和Chutzpah对typescript进行单元测试,但在为Webpack捆绑文件配置Chutzpah时遇到问题。请推荐一个良好 查看详情

如何对 DOM 操作进行单元测试(使用 jasmine)

】如何对DOM操作进行单元测试(使用jasmine)【英文标题】:howtounittestDOMmanipulation(withjasmine)【发布时间】:2013-04-1608:14:13【问题描述】:我需要用jasmine对一些DOM操作函数进行单元测试(目前我在浏览器和Karma中运行我的测试)我... 查看详情