AngularMockModule class
Use in addition to AngularModule in your tests.
AngularMockModule provides:
- TestBed
- Probe
- MockHttpBackend instead of HttpBackend
- Logger
- RethrowExceptionHandler instead of ExceptionHandler
ng.Zone
which displays errors to console;
class AngularMockModule extends Module { AngularMockModule() { type(ExceptionHandler, implementedBy: RethrowExceptionHandler); type(TestBed); type(Probe); type(Logger); type(MockHttpBackend); factory(HttpBackend, (Injector i) => i.get(MockHttpBackend)); factory(Zone, (_) { Zone zone = new Zone(); zone.onError = (dynamic e, dynamic s, LongStackTrace ls) => dump('EXCEPTION: $e\n$s\n$ls'); return zone; }); } }
Extends
Module > AngularMockModule
Constructors
new AngularMockModule() #
Creates a new Object instance.
Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.
AngularMockModule() { type(ExceptionHandler, implementedBy: RethrowExceptionHandler); type(TestBed); type(Probe); type(Logger); type(MockHttpBackend); factory(HttpBackend, (Injector i) => i.get(MockHttpBackend)); factory(Zone, (_) { Zone zone = new Zone(); zone.onError = (dynamic e, dynamic s, LongStackTrace ls) => dump('EXCEPTION: $e\n$s\n$ls'); return zone; }); }
Properties
final Map<Type, Binding> bindings #
Compiles and returs bindings map by performing depth-first traversal of the child (installed) modules.
Map<Type, Binding> get bindings { Map<Type, Binding> res = new HashMap<Type, Binding>(); _childModules.forEach((child) => res.addAll(child.bindings)); res.addAll(_bindings); return res; }
Methods
void factory(Type id, FactoryFn factoryFn, {CreationStrategy creation, Visibility visibility}) #
Register binding to a factory function.abstract
The factoryFn will be called and all its arguments will get injected. The result of that function is the value that will be injected.
void factory(Type id, FactoryFn factoryFn, {CreationStrategy creation, Visibility visibility}) { _bindings[id] = new FactoryBinding(factoryFn, creation, visibility); }
void install(Module module) #
Installs another module into this module. Bindings defined on this module take precidence over the installed module.
void install(Module module) => _childModules.add(module);
void type(Type id, {Type implementedBy, CreationStrategy creation, Visibility visibility}) #
Register binding to a Type.
The
implementedBy will be instantiated using new
operator and the
resulting instance will be injected. If no type is provided, then it's
implied that
id should be instantiated.
void type(Type id, {Type implementedBy, CreationStrategy creation, Visibility visibility}) { _bindings[id] = new TypeBinding(implementedBy == null ? id : implementedBy, creation, visibility); }
void value(Type id, value, {CreationStrategy creation, Visibility visibility}) #
Register binding to a concrete value.
The value is what actually will be injected.
void value(Type id, value, {CreationStrategy creation, Visibility visibility}) { _bindings[id] = new ValueBinding(value, creation, visibility); }