我是角度 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';
如果您的测试很浅,那么您可以使用:
schemas: [
NO_ERRORS_SCHEMA
]
但不建议过度使用它!但正如您所说,您只想创建组件。那么这应该对您有所帮助。
我找到了解决问题的方法,但我不知道这是一个好的做法还是危险。我很惊讶以前没有人发布它,因为其他人也有同样的问题。
使用旁观者,添加到文件 test.ts:
defineGlobalsInjections({
imports: [
FormsModule,
ReactiveFormsModule,
RouterModule.forRoot([]),
CommonModule,
MatTabsModule,
MatSnackBarModule,
MatTableModule,
MatInputModule,
MatFormFieldModule,
MatSelectModule,
MatButtonModule
]
});
它应该添加到文件的开头(否则在运行测试后设置(。