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();
 | 
						|
}
 | 
						|
 |