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;

http: //plnkr.co/edit/q1l1y8? p = preview

Antworten auf die Frage(8)

Ihre Antwort auf die Frage