我制作了一个组件,并使用以下代码从路线中获取一些数据。尝试ng测试时出现错误:
TypeError:无法读取null的属性“ extras”
我应该在该组件的规范文件中导入哪些内容以读取“状态”?在我的规格文件中,我添加了<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<div id="example" style="width:1000px;"></div>
,但仍然无效;
import { RouterTestingModule } from '@angular/router/testing'
答案 0 :(得分:0)
@Component({
selector: 'app-root',
template: `<pre>{{ state$ | async | json }}</pre>`,
})
export class AppComponent implements OnInit {
private state$: Observable<object>;
constructor(public router: Router) { }
ngOnInit() {
this.state$ = this.router.events.pipe(
filter(e => e instanceof NavigationStart),
map(() => this.router.getCurrentNavigation().extras.state)
)
}
}
答案 1 :(得分:0)
就我而言,我通过添加
修复了所有这些错误。afterEach(() => {
TestBed.resetTestingModule();
});
在我所有的* .spec.ts文件中。
我的文件如下:
beforeEach(() => {
fixture = TestBed.createComponent(MyComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
afterEach(() => {
TestBed.resetTestingModule();
});