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