我是angular 8的新手。我写了一些组件,现在我正在写测试(但是旁观者,但它不介意)。
我想编写简单的测试,只检查组件是否成功创建。
我发现依赖项管理很可怕,我花了10倍的时间来找到所需的依赖项,而不是编写测试。
真的没有办法避免吗?一个可以为我们管理它的库?还是默认情况下注入所有依赖项?
谢谢。
编辑1:问题是我使用的是material,它需要很多依赖项。以我想要测试的组件的依赖关系为例:
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';发布于 2020-02-12 16:58:16
如果你的测试很浅,那么你可以使用:
schemas: [
NO_ERRORS_SCHEMA
]但是不推荐过度使用这个!但正如您所说的,您只想创建组件。那么这应该会对你有帮助。
发布于 2020-02-12 18:23:38
我找到了我的问题的解决方案,但是我不知道这是一种好的做法还是危险的做法。我很惊讶之前没有人发布它,因为其他人也有同样的问题。
使用旁观者,将其添加到文件test.ts:
defineGlobalsInjections({
imports: [
FormsModule,
ReactiveFormsModule,
RouterModule.forRoot([]),
CommonModule,
MatTabsModule,
MatSnackBarModule,
MatTableModule,
MatInputModule,
MatFormFieldModule,
MatSelectModule,
MatButtonModule
]
});它应该被添加到文件的开头(否则它是在运行测试之后设置的)。
https://stackoverflow.com/questions/60184023
复制相似问题