angle2 Test, wie mache ich sub component @ mo
Wie verspotte ich eine Unterkomponente in Jasmin-Tests?
Ich habeMyComponent
, das @ verwendMyNavbarComponent
undMyToolbarComponent
import {Component} from 'angular2/core';
import {MyNavbarComponent} from './my-navbar.component';
import {MyToolbarComponent} from './my-toolbar.component';
@Component({
selector: 'my-app',
template: `
<my-toolbar></my-toolbar>
{{foo}}
<my-navbar></my-navbar>
`,
directives: [MyNavbarComponent, MyToolbarComponent]
})
export class MyComponent {}
Wenn ich diese Komponente teste, möchte ich diese beiden Unterkomponenten nicht laden und testen. MyNavbarComponent, MyToolbarComponent, also möchte ich es verspotten.
Ich weiß, wie man mit Diensten spottet, die @ verwendprovide(MyService, useClass(...))
, aber ich habe keine Ahnung, wie man Richtlinien verspottet; Komponenten;
beforeEach(() => {
setBaseTestProviders(
TEST_BROWSER_PLATFORM_PROVIDERS,
TEST_BROWSER_APPLICATION_PROVIDERS
);
//TODO: want to mock unnecessary directives for this component test
// which are MyNavbarComponent and MyToolbarComponent
})
it('should bind to {{foo}}', injectAsync([TestComponentBuilder], (tcb) => {
return tcb.createAsync(MyComponent).then((fixture) => {
let DOM = fixture.nativeElement;
let myComponent = fixture.componentInstance;
myComponent.foo = 'FOO';
fixture.detectChanges();
expect(DOM.innerHTML).toMatch('FOO');
});
});
Hier ist mein Plunker-Beispiel;