angular-cn/modules_dart/angular2_testing
Tobias Bosch 9092ac79d4 refactor(core): support non reflective bootstrap.
This changes Angular so that it can be used without reflection (assuming a codegen for injectors).

BREAKIKNG CHANGE:
- Drops `APP_COMPONENT` provider. Instead, inject
  `ApplicationRef` and read its `componentTypes` property.
- long form bootstrap has changed into the following:
  ```
  var platform = createPlatform(ReflectiveInjector.resolveAndCreate(BROWSER_PROVIDERS));
  var appInjector =
    ReflectiveInjector.resolveAndCreate([BROWSER_APP_PROVIDERS, appProviders], platform.injector);
  coreLoadAndBootstrap(appInjector, MyApp);
  ```
2016-04-20 11:34:11 -07:00
..
lib refactor(core): support non reflective bootstrap. 2016-04-20 11:34:11 -07:00
test fix(testing): remove test zone for now and rely on returned promises 2016-01-22 00:28:48 +00:00
README.md feat(test): add angular2_testing dart library 2015-12-03 11:33:46 -08:00
pubspec.yaml refactor(view_compiler): codegen DI and Queries 2016-04-13 14:43:48 -07:00

README.md

Contains helpers to run unit tests for angular2 components and injectables, backed by the package:test library.

Usage

Update the dev dependencies in your pubspec.yaml to include the angular testing and test packages:

dev_dependencies:
  test: '^0.12.6'
  angular2_testing: any
  

Then in your test files, use angular2_testing helpers in place of setUp and test:

import 'package:test/test.dart';
import 'package:angular2_testing/angular2_testing.dart';

void main() {
  // This must be called at the beginning of your tests.
  initAngularTests();

  // Initialize the injection tokens you will use in your tests.
  setUpProviders(() => [provide(MyToken, useValue: 'my string'), TestService]);

  // You can then get tokens from the injector via ngSetUp and ngTest.
  ngSetUp((TestService testService) {
    testService.initialize();
  });

  ngTest('can grab injected values', (@Inject(MyToken) token, TestService testService) {
    expect(token, equals('my string'));
    expect(testService.status, equals('ready'));
  });
}

Examples

A sample test is available in test/angular2_testing_test.dart.