Soy nuevo en las pruebas de Angular 2. Estoy tratando de averiguar cuál es la diferencia entre usar testsbed.get() y solo usar inject en el nivel de prueba.
p.ej:
beforeEach(() => { TestBed.configureTestingModule({ providers: [SomeService] }); const testbed = getTestBed(); someService= testbed.get(SomeService); }); });contra
it('test service', inject([SomeService], (someService: SomeService) => {Solo para agregar a la respuesta existente y si, como yo, encontró esta pregunta porque se pregunta cuál es la diferencia entre TestBed.get() y TestBed.inject() , que sé que no era exactamente lo que preguntó originalmente el OP, pero es relevante y está muy relacionado.
Pensé que valía la pena publicar que, según la última documentación de Angular, TestBed.inject() es el tipo de reemplazo seguro de TestBed.get() .
De la documentación de Angular en TestBed que se puede encontrar aquí .
La función auxiliar de inject se usó históricamente desde AngularJS como una alternativa a las llamadas de inyector directo. En Angular 1, era necesario arrancar una prueba con ngMock . Es completamente opcional en Angular 2 y superior y es solo una forma sugerida para DI en las pruebas de TestBed.
Es un contenedor de conveniencia para testBed.get que permite evitar múltiples llamadas a testBed.get , de manera similar a:
const [foo, bar] = [Foo, Bar].map(TestBed.get); Otras funciones auxiliares se pueden usar opcionalmente junto con inject , a saber, async y fakeAsync .
Estos solían ser equivalentes, pero con Angular 9 el método preferido se convirtió en inject() .
TestBed.get() está obsoleto en Angular 9+, y TestBed.inject() es ahora la forma segura de tipos preferida para inyectar una dependencia.
Lea la documentación para mayor claridad: TestBed.get() y TestBed.inject() . El cambio es de desaprobación.