Ich verwende Protractor
zusammen mit Jasmine
, um e2e Testfälle für eine Angular2
App zu schreiben.Wann wird der "defaultTimeoutInterval" im Winkelmesser zurückgesetzt?
Ich habe zwei Fragen:
1. Über DefaultTimeoutInterval
ich ein Verständnis haben, dass ein Countdown beginnt, wenn ein Versprechen beginnt und wenn das Versprechen bekommen nicht innerhalb der angegebenen defaultTimeoutInterval
in protractor.conf.js
abgeschlossen , Winkelmesser führt zu einem Fehler auf der Konsole. Aber wenn das Versprechen innerhalb der defaultTimeoutInterval
abgeschlossen wird, wird der Countdown zurückgesetzt und würde gestartet werden, wenn das nächste Versprechen beginnt.
Wenn das Obige wahr ist, wollte ich klarstellen, Wenn ich eine Kette von Versprechen habe, wann wird der Countdown zurückgesetzt? Nachdem alle Versprechen in der Kette erfüllt sind oder nachdem jedes Versprechen abgeschlossen ist?
Wenn der Countdown zurückgesetzt wird, nachdem alle Versprechen in der Kette abgeschlossen sind, dann wäre die richtige Übung, die Versprechen als direkte Kinder der it()/fit() blocks
zu haben?
Ich habe einen Beispielcode unten, um mehr zu erklären, was ich zu fragen versuche.
it("when does protractor's default timeout interval gets reset?",() => {
expect("a single promise here").toBe('something'); // I believe, after the promise inside the expect block finishes, the defaultTimeoutInterval should Reset.
// what happens if I have a chain of promises, like below?
// whether the defaultTimeoutInterval resets after every single promise inside the method `validateSuccessAlert()` and then the chained promises are finsihed?
// or will it reset on completion of every single promise?
PO.validateSuccessAlert('a method which has chained promises inside itself, returns a promise').then(() => {
browser.waitForAngularEnabled(false).then(() => {
PO.getEmailActivationLink('xxxxxx').then((activationCode) => {
PO.openNewTab(activationCode).then(() => {
PO.switchToTab(1).then(() => {
expect(PO.isVisible(element(by.css('.activateMailBox h3 small')))).toBeTruthy();
expect(element(by.css('.activateMailBox h3 small')).getText()).toBe('Congratulations!!');
expect(PO.isNotVisible(PO.getButtonByText('Proceed')));
PO.switchToTab(0);
browser.waitForAngularEnabled(true); // Re-enable the angular wait
})
})
});
});
})
})
2. Über allScriptsTimeout
ich das verstehe wirklich nicht, das gilt für: eine Spezifikation in jeder Datei? Wenn Sie ein wenig darüber auch erklären können, wird es großartig sein.
Danke, ich dachte mir aus der Reihe! –