56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/* tslint:disable */
 | 
						|
// Simulate a simple test
 | 
						|
// Reader should look to the testing chapter for the real thing
 | 
						|
 | 
						|
import { Component }           from '@angular/core';
 | 
						|
 | 
						|
import { HeroService }         from './heroes/hero.service';
 | 
						|
import { HeroListComponent }   from './heroes/hero-list.component';
 | 
						|
 | 
						|
@Component({
 | 
						|
  selector: 'my-tests',
 | 
						|
  template: `
 | 
						|
    <h2>Tests</h2>
 | 
						|
    <p id="tests">Tests {{results.pass}}: {{results.message}}</p>
 | 
						|
  `
 | 
						|
})
 | 
						|
export class TestComponent {
 | 
						|
  results = runTests();
 | 
						|
}
 | 
						|
 | 
						|
/////////////////////////////////////
 | 
						|
function runTests() {
 | 
						|
 | 
						|
  // #docregion spec
 | 
						|
  let expectedHeroes = [{name: 'A'}, {name: 'B'}]
 | 
						|
  let mockService = <HeroService> {getHeroes: () => expectedHeroes }
 | 
						|
 | 
						|
  it('should have heroes when HeroListComponent created', () => {
 | 
						|
    let hlc = new HeroListComponent(mockService);
 | 
						|
    expect(hlc.heroes.length).toEqual(expectedHeroes.length);
 | 
						|
  });
 | 
						|
  // #enddocregion spec
 | 
						|
 | 
						|
  return testResults;
 | 
						|
}
 | 
						|
 | 
						|
//////////////////////////////////
 | 
						|
// Fake Jasmine infrastructure
 | 
						|
var testName: string;
 | 
						|
var testResults: {pass: string; message: string};
 | 
						|
 | 
						|
function expect(actual: any) {
 | 
						|
  return {
 | 
						|
    toEqual: function(expected: any){
 | 
						|
      testResults = actual === expected ?
 | 
						|
        {pass: 'passed', message: testName} :
 | 
						|
        {pass: 'failed', message: `${testName}; expected ${actual} to equal ${expected}.`};
 | 
						|
    }
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
function it(label: string, test: () => void) {
 | 
						|
  testName = label;
 | 
						|
  test();
 | 
						|
}
 |