teste angular2, como eu zombei do subcomponente
Como eu zombei do subcomponente nos testes de jasmim?
eu tenhoMyComponent
, que usaMyNavbarComponent
eMyToolbarComponent
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 {}
Quando testo este componente, não quero carregar e testar esses dois subcomponentes; MyNavbarComponent, MyToolbarComponent, então eu quero zombar dele.
Eu sei como zombar de serviços usandoprovide(MyService, useClass(...))
, mas não tenho idéia de como zombar de diretivas; componentes;
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');
});
});
Aqui está o meu exemplo mais ousado;