まあ、私は私のカルマのテストで何かやっている:
はモックコンポーネント
@Component({
template: "",
selector: 'mock'
})
export class MockComponent implements OnInit {
constructor() { }
ngOnInit() {
console.log("Is loaduing");
}
}
を作成モックサービス
class MockSomeService {
public subscribe(){}
public inizialize() {}
}
を作成します。
ルートアレイを作成
export var ROUTES = [ {path:"/pathexample", component: MockComponent}]
宣言配列を作成
export var DECLARATIONS:Component[] = [
MockComponent, ExampleComponent
];
プロバイダー
を作成
const CONSTANTS_PROVIDERS: Provider[] = [
{ provide: SomeService, useClass: MockSomeService }
];
コンポーネントは、あなたがTestBed.overrideComponentを使用し、それをまだ持っていない場合は、あなたのコンポーネントにtemplate: '<router-outlet></router-outlet>'
を追加する必要がありますroute.navigateを使用している場合は、テスト
describe('Component: example',() => {
beforeEach(() => {
TestBed.configureTestingModule({ declarations: DECLARATIONS, providers: CONSTANTS_PROVIDERS, imports: [RouterTestingModule.withRoutes(ROUTES)] });
});
it('should create an instance', inject([ExampleComponent], (component: ExampleComponent) => {
expect(component).toBeTruthy();
}));
});
を書くと、実際にこのようなコンポーネントを作成します。TestBed.createComponent(ExampleComponent);