Actualmente estoy anulando proveedores para usar servicios simulados como este:
beforeEach(inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
tcb.overrideProviders(AddFieldToObjectDropdownComponent,
[
provide(ServiceA, { useClass: MockServiceA })),
provide(ServiceB, { useClass: MockServiceB }))
])
...
Quiero hacer lo mismo para las tuberías que usa el componente. Lo intenté, provide(PipeA, { useClass: MockPipeA })
pero provide(PipeA, { useValue: new MockPipeA() })
ambos no funcionaron.
Solución del problema
Si desea una función de utilidad reutilizable para burlarse de tuberías, puede probar esta opción:
export function mockPipe(options: Pipe): Pipe {
const metadata: Pipe = {
name: options.name
};
return <any>Pipe(metadata)(class MockPipe {});
}
Y luego llame a esta función dentro de la matriz de declaraciones de TestBed:
TestBed.configureTestingModule({
declarations: [
SomeComponent,
mockPipe({ name: 'myPipe' }),
mockPipe({ name: 'myOtherPipe' })
],
//...
}).compileComponents();
No hay comentarios:
Publicar un comentario