这个错误通常是由于在测试中缺少必要的提供者而导致的。为了解决这个问题,你可以按照以下步骤进行操作:
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ActivatedRoute } from '@angular/router';
import { of } from 'rxjs';
class MockActivatedRoute {
// 添加你需要的属性和方法
snapshot = {
paramMap: {
get: (param: string) => {
// 返回模拟的参数值
return 'mockedParamValue';
}
}
};
}
TestBed.configureTestingModule({
providers: [
{ provide: ActivatedRoute, useClass: MockActivatedRoute }
]
});
it('should do something with ActivatedRoute', () => {
// 在测试中使用ActivatedRoute
// 例如,如果你正在测试一个组件的 ngOnInit 方法:
component.ngOnInit();
// 断言或期望的结果
});
这样,你就为ActivatedRoute提供了一个模拟对象,使得测试能够正常运行。