delete common angular angular2-testing

angular - common - NG2 RC5: HTTP_PROVIDERS está en desuso



patch angular 5 (2)

El HTTP_PROVIDERS ahora en desuso se reemplaza con HttpModule es RC5.

Dentro de su bloque de descripción, agregue el TestBed.configureTestingModule con los atributos requeridos de matrices de importaciones y proveedores, como a continuación:

describe("test description", () => { beforeEach(() => { TestBed.configureTestingModule({ imports: [HttpModule], providers: [SomeService] }); }); it("expect something..", () => { // some expectation here ... }) })

Así es como obtuve las pruebas de mi unidad de servicio para trabajar con RC5, con suerte esto no tendrá que cambiar entre los próximos candidatos de lanzamiento y la versión final. Si eres como yo, probablemente te sientas frustrado por la cantidad de desaprobación que se está produciendo entre los candidatos a la publicación. ¡Espero que las cosas se estabilicen pronto!

Por lo tanto, en la versión RC5 de Angular2, dejaron de utilizar HTTP_PROVIDERS e introdujeron HttpModule . Para mi código de aplicación, esto está funcionando bien, pero estoy luchando por hacer el cambio en mis pruebas de jazmín.

Esto es lo que estoy haciendo actualmente en mis especificaciones, pero como HTTP_PROVIDERS está en desuso, ¿qué debería estar haciendo ahora? ¿Hay algo que deba proporcionar en lugar de HTTP_PROVIDERS? ¿Cuál es la forma correcta de hacer esto en el mundo RC5?

beforeEach(() => { reflectiveInjector = ReflectiveInjector.resolveAndCreate([ HTTP_PROVIDERS, ... ]); //other code here... }); it("should....", () => { ... });


Me encuentro con un problema similar cuando actualizo del código pre-RC5 a RC6. Para ampliar la respuesta de Joe W anterior, reemplacé este código:

import { ReflectiveInjector, provide } from ''@angular/core''; import { HTTP_PROVIDERS, RequestOptions } from ''@angular/http''; export function main() { describe(''My Test'', () => { let myService: MyService; beforeAll(() => { let injector = ReflectiveInjector.resolveAndCreate([ HTTP_PROVIDERS, provide(RequestOptions, { useValue: getRequestOptions() }), MyService ]); myService = injector.get(MyService); }); it(''should be instantiated by the injector'', () => { expect(myService).toBeDefined(); }); ...

con este código RC6 (que, supongo, también debería funcionar para RC5):

import { TestBed } from ''@angular/core/testing''; import { HttpModule, RequestOptions } from ''@angular/http''; export function main() { describe(''My Test'', () => { let myService: MyService; beforeAll(() => { TestBed.configureTestingModule({ imports: [HttpModule], providers: [ { provide: RequestOptions, useValue: getRequestOptions() }, MyService ] }); myService = TestBed.get(MyService); }); it(''should be instantiated by the testbed'', () => { expect(myService).toBeDefined(); }); ...