【发布时间】:2018-06-13 03:33:25
【问题描述】:
我已参考以下链接来获得答案,但我找不到适合我的方案的任何有效解决方案。 Error: (SystemJS) Can't resolve all parameters for ActivatedRoute: (?, ?, ?, ?, ?, ?, ?, ?)
因此,我一直在尝试从提供程序中删除已激活的路由,但测试台仍然没有通过。它显示
错误:ActivatedRoute 没有提供程序!
这是我的代码,我想在使用 Jasmine 的 Angular 应用程序中运行我的测试平台。
import { ActivatedRoute } from '@angular/router';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { RouterModule, Routes } from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing';
describe('SomeComponent', () => {
let component: SomeComponent;
let fixture: ComponentFixture<SomeComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [ RouterModule, RouterTestingModule ],
declarations: [ SomeComponent ],
providers: [ ActivatedRoute ],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SomeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
获取错误
【问题讨论】:
-
ActivatedRoute是RouterModule已经定义的提供者之一,您不应再次包含它。另请注意,RouterTestingModule可能更适合您的需求。
标签: angular unit-testing karma-jasmine router testbed