Winkel-2 Prüfung: Asynchrone callback wurde nicht aufgerufen, innerhalb von timeout angegeben, die von Jasmin.DEFAULT_TIMEOUT_INTERVAL
Menschen! Bitte, seien Sie nett zu teilen Sie Ihre Ideen über die Festsetzung der folgenden. Während des Schreibens ein test für Angular2 Komponente, dass ich auf diese Art von Fehler:
Fehler: Timeout - Asynchrone callback wurde nicht aufgerufen, innerhalb von timeout angegeben, die von Jasmin.DEFAULT_TIMEOUT_INTERVAL.
Die Komponente unter test: (sorry, es ist sperrig)
Test:
import { TestBed, ComponentFixture, async, inject } from '@angular/core/testing';
import { DebugElement } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {Injectable} from '@angular/core';
import {FormGroup, FormBuilder, ReactiveFormsModule} from '@angular/forms';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import SignupComponent from './signup.component';
import {UserService} from '../services/user.service';
@Injectable()
export class MockUserService {
public signup(user: any) {
return Observable.of({});
}
}
let component: SignupComponent;
let fixture: ComponentFixture<SignupComponent>;
describe('SignupComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ SignupComponent ],
imports: [
BrowserModule,
ReactiveFormsModule
]
})
.overrideComponent(SignupComponent, {
set: {
templateUrl: 'app/components/signup.component.html'
}}
)
.overrideComponent(SignupComponent, {
set: {
providers: [
{ provide: UserService, useClass: MockUserService },
]
}
})
.compileComponents().then(createComponent);
}));
it('should create an instance', () => {
expect(component).toBeDefined();
});
});
/***** HELPERS *****/
function createComponent() {
fixture = TestBed.createComponent(SignupComponent);
component = fixture.componentInstance;
fixture.detectChanges();
return fixture.whenStable().then(() => {
fixture.detectChanges();
});
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies geschieht, wenn Sie die async-spec abgeschlossen ist, nachdem die voreingestellte Zeit heraus, dass Jasmin hat angegeben, das ist 5 Sekunden. Dies ist entnommen aus Jasmin Dokumentation -
Hier ist die link für die gleichen. Bitte erhöhen Sie die
DEFAULT_TIMEOUT_INTERVAL
für die asynchrone Aufrufe so, dass Jasmin hat genug Zeit, zu wissen, den Anruf bekam, verarbeitet. Dies könnte daran liegen, dass Ihre Komponente sperrig (wie Sie angegeben haben).