66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| // Simulate a simple test
 | |
| // Reader should look to the testing chapter for the real thing
 | |
| 
 | |
| import 'package:angular2/core.dart';
 | |
| 
 | |
| import 'heroes/hero.dart';
 | |
| import 'heroes/hero_list_component.dart';
 | |
| import 'heroes/hero_service.dart';
 | |
| 
 | |
| @Component(
 | |
|     selector: 'my-tests',
 | |
|     template: '''
 | |
|       <h2>Tests</h2>
 | |
|       <p id="tests">Tests {{results['pass']}}: {{results['message']}}</p>
 | |
|     ''')
 | |
| class TestComponent {
 | |
|   var results = runTests();
 | |
| }
 | |
| 
 | |
| class MockHeroService implements HeroService {
 | |
|   final List<Hero> _heroes;
 | |
|   MockHeroService(this._heroes);
 | |
| 
 | |
|   @override
 | |
|   List<Hero> getHeroes() => _heroes;
 | |
| }
 | |
| 
 | |
| /////////////////////////////////////
 | |
| dynamic runTests() {
 | |
|   //#docregion spec
 | |
|   var expectedHeroes = [new Hero(0, 'A'), new Hero(1, 'B')];
 | |
|   var mockService = new MockHeroService(expectedHeroes);
 | |
|   it('should have heroes when HeroListComponent created', () {
 | |
|     var hlc = new HeroListComponent(mockService);
 | |
|     expect(hlc.heroes.length).toEqual(expectedHeroes.length);
 | |
|   });
 | |
|   //#enddocregion spec
 | |
|   return testResults;
 | |
| }
 | |
| //////////////////////////////////
 | |
| 
 | |
| // Fake Jasmine infrastructure
 | |
| String testName;
 | |
| dynamic testResults;
 | |
| dynamic expect(dynamic actual) => new ExpectResult(actual);
 | |
| 
 | |
| class ExpectResult {
 | |
|   final actual;
 | |
|   ExpectResult(this.actual);
 | |
| 
 | |
|   void toEqual(dynamic expected) {
 | |
|     testResults = actual == expected
 | |
|         ? {'pass': 'passed', 'message': testName}
 | |
|         : {
 | |
|             'pass': 'failed',
 | |
|             'message': '$testName; expected $actual to equal $expected.'
 | |
|           };
 | |
|   }
 | |
| }
 | |
| 
 | |
| void it(String label, void test()) {
 | |
|   testName = label;
 | |
|   test();
 | |
| }
 | |
| 
 |