0

我是 angular 8 的新手。我写了一些组件,现在我正在编写测试(但是旁观者,但它不介意)。

我想写简单的测试,只检查组件是否创建成功。

我发现依赖项管理很糟糕,我花了 10 倍的时间来查找所需的依赖项,而不是编写测试。

真的没有办法避免吗?一个可以为我们管理它的图书馆?还是默认注入所有依赖项?

谢谢。

编辑1:事情是我使用材料,这需要很多依赖。作为我要测试的组件的依赖关系的示例:

import { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { MatSnackBar } from '@angular/material/snack-bar';
import { MainFormService } from 'src/app/modules/shared/services/main-form.service';
4

2 回答 2

0

我找到了解决问题的方法,但是我不知道这是一种好的做法还是危险的。我很惊讶之前没有人发布它,因为其他人也有同样的问题。

使用旁观者,添加到文件 test.ts:

defineGlobalsInjections({
  imports: [
    FormsModule,
    ReactiveFormsModule,
    RouterModule.forRoot([]),
    CommonModule,
    MatTabsModule,
    MatSnackBarModule,
    MatTableModule,
    MatInputModule,
    MatFormFieldModule,
    MatSelectModule,
    MatButtonModule
  ]
});

它应该添加到文件的开头(否则在运行测试后设置)。

于 2020-02-12T10:23:38.077 回答
0

如果您的测试很浅,那么您可以使用:

  schemas: [
    NO_ERRORS_SCHEMA
  ]

但不建议过度使用它!但正如您所说,您只想创建组件。那么这应该可以帮助你。

于 2020-02-12T08:58:16.210 回答