import { TestBed, async } from '@angular/core/testing';
import { AppComponent } from './app.component';
+import { Component } from '@angular/core';
+
+@Component({selector: 'router-outlet', template: ''})
+class RouterOutletStubComponent { }
+
+@Component({selector: 'app-messages', template: ''})
+class MessagesStubComponent {}
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
- AppComponent
+ AppComponent,
+ RouterOutletStubComponent,
+ MessagesStubComponent
],
}).compileComponents();
}));
expect(app).toBeTruthy();
});
- it(`should have as title 'angular-tour-of-heroes'`, () => {
+ it(`should have as title 'Tour of Heroes'`, () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
- expect(app.title).toEqual('angular-tour-of-heroes');
+ expect(app.title).toEqual('Tour of Heroes');
+ });
+
+ it(`should render the title 'Tour of Heroes'`, () => {
+ const fixture = TestBed.createComponent(AppComponent);
+ fixture.detectChanges();
+ const compiled = fixture.debugElement.nativeElement;
+ expect(compiled.querySelector('h1').textContent).toContain('Tour of Heroes');
});
- it('should render title', () => {
+ it(`should render the link 'Heroes'`, () => {
const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges();
const compiled = fixture.debugElement.nativeElement;
- expect(compiled.querySelector('.content span').textContent).toContain('angular-tour-of-heroes app is running!');
+ expect(compiled.querySelector('nav > a').textContent).toContain('Heroes');
});
});
import { HeroesComponent } from './heroes.component';
+import { Observable, of } from 'rxjs';
+import { Hero } from '../hero';
+import { HEROES } from '../mock-heroes';
+import { HeroService } from '../hero.service';
+import { MessageService } from '../message.service';
+
+class MockHeroService {
+ getHeroes() : Observable<Hero[]> {
+ return of(HEROES);
+ }
+}
+
+class MockMessageService {}
+
describe('HeroesComponent', () => {
let component: HeroesComponent;
let fixture: ComponentFixture<HeroesComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ HeroesComponent ]
+ declarations: [ HeroesComponent ],
+ providers: [
+ { provide: HeroService, useClass: MockHeroService },
+ { provide: MessageService, useClass: MockMessageService }
+ ]
})
.compileComponents();
}));