小编Nei*_*l89的帖子

在 Angular 14 + Ionic 6 项目中设置 Jest

我正在尝试将 Jest 测试框架设置到我的项目中,该项目使用 Angular 14 和 Ionic 6,以及其他可能存在冲突的插件,例如 firebase 和 ngrx。

\n

我一直主要关注Tim Deschryver 教程和其他一些教程,甚至从堆栈溢出中复制和粘贴一些关于我的 Jest 测试错误的代码,但没有任何效果。即使我尝试重新开始删除所有软件包和修改并重新开始,但没有运气。

\n

我在这里有更新的存储库https://github.com/neil89/igloo(它非常易于管理)。但总的来说,我的主要修改是这些:

\n

包.json

\n
{\n  "name": "igloo",\n  "version": "0.0.1",\n  "author": "Ionic Framework",\n  "homepage": "https://ionicframework.com/",\n  "scripts": {\n    "ng": "ng",\n    "start": "ng serve",\n    "build": "ng build",\n    "test": "jest",\n    "lint": "ng lint",\n    "e2e": "ng e2e"\n  },\n  "private": true,\n  "dependencies": {\n    "@angular/common": "^14.0.0",\n    "@angular/core": "^14.0.0",\n    "@angular/fire": "^7.4.1",\n    "@angular/forms": "^14.0.0",\n    "@angular/platform-browser": "^14.0.0",\n    "@angular/platform-browser-dynamic": "^14.0.0",\n    "@angular/router": "^14.0.0",\n    "@briebug/jest": "^1.3.1",\n    "@ionic/angular": "^6.2.6",\n    "@ngrx/effects": "^14.3.1",\n    "@ngrx/store": …
Run Code Online (Sandbox Code Playgroud)

unit-testing typescript ionic-framework angular ts-jest

5
推荐指数
1
解决办法
1869
查看次数

Angular 8 - FormArray“没有用于带有路径的表单控制的值访问器”

我在表单上使用ng-select,但现在我想将其特定配置包装在自定义组件上。问题是我正在使用FormArray包含其中几个的 a,以下面的方式:

this.profileForm = this.formBuilder.group(
  {
    ...
    linkedRoles: this.formBuilder.array([])
  }
);
Run Code Online (Sandbox Code Playgroud)

linkedRoles由下一个填充FormGroup

let fgRoles: FormGroup;

for (let i = 0; i < this.userRoles.length; i++) {
  fgRoles = this.formBuilder.group({
    activeRole: [{ value: null }],
    roles: [{ value: null }]
  });
  this.linkedRoles.push(fgRoles);
  this.linkedRoles.controls[i].setValue({
    activeRole: this.userRoles[i].role,
    roles: this.extractUserRoles(this.userRoles[i])
  });
Run Code Online (Sandbox Code Playgroud)

为了简单起见,还创建了 getter:

get linkedRoles(): FormArray {
  return <FormArray>this.profileForm.get("linkedRoles");
}
Run Code Online (Sandbox Code Playgroud)

之后,在我的模板中,我使用了这个效果完美的组合:

<form [formGroup]="profileForm">
  ...

  <table>
    ...
    <tbody>
      <tr formArrayName="linkedRoles"
        *ngFor="let usuR of userRoles;
          let idx = index" …
Run Code Online (Sandbox Code Playgroud)

form-control angular-ngselect angular formarray

4
推荐指数
2
解决办法
4948
查看次数