53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | // Simulate a simple test
 | ||
|  | // Reader should look to the testing chapter for the real thing
 | ||
|  | 
 | ||
|  | import {Component}           from 'angular2/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(); | ||
|  | } |