Encontré un error misterioso mientras ejecutaba pruebas en Angular usando broma.
Se lee
TypeError: Conversión de estructura circular a JSON -> comenzando en el objeto con el constructor 'Objeto' | propiedad 'elemento' -> objeto con constructor 'Objeto' | propiedad 'componentProvider' -> objeto con constructor 'Objeto' --- propiedad 'padre' cierra el círculo en stringify ()
o alguna variación de ese error.
Encontré una solución para esto, mira la respuesta a continuación.
Parece que se trata de algún tipo de error interno de broma. Después de leer sobre problemas similares en la página de jestjs Github , logré encontrar la siguiente solución/solución alternativa:
npm run test:detectOpenHandles o la jest --detectOpenHandlesEncontré el oyente sintético @transform.start. Incluya "BrowserAnimationsModule" o "NoopAnimationsModule" en su aplicación.
O
Encontré la propiedad sintética @transitionMessages. Por favor incluya[...]
BrowserAnimationsModule o NoopAnimationsModule en su pruebaSin embargo, no sé a qué se deben los errores anteriores. Espero que esto ayude.
EDITAR: Aquí hay un ejemplo de configuración de TestBed de mi proyecto actual:
import { TestBed } from '@angular/core/testing'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterTestingModule } from '@angular/router/testing'; import { AppComponent } from './app.component'; import { AppBarComponent } from './components/app-bar/app-bar.component'; import { SideNavComponent } from './components/side-nav/side-nav.component'; import { AngularMaterialModule } from './modules/angular-material.module'; describe('AppComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ imports: [ RouterTestingModule, AngularMaterialModule, BrowserAnimationsModule ], declarations: [ AppComponent, AppBarComponent, SideNavComponent ], }).compileComponents(); }); it('should create the app', () => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.componentInstance; expect(app).toBeTruthy(); }); });