Protractor
とJasmine
を使用して、Angular2
アプリのe2eテストケースを作成しています。分度器の「defaultTimeoutInterval」はいつリセットされますか?
私は2つの質問があります:私は約束がprotractor.conf.js
で指定defaultTimeoutInterval
内に完了しませんならば約束が起動し、いつでもカウントダウンが開始されることを理解している
1. DefaultTimeoutIntervalについて
を分度器はコンソールにエラーを発生させます。しかし約束事がdefaultTimeoutInterval
内で完了すると、カウントダウンはリセットされ、次の約束が始まると開始されます。
上記が真実なら、私は明確にしたいと思っています。もし私が約束を持っていたら、カウントダウンはいつリセットされますか?チェーンのすべての約束が完了した後、または各約束が完了した後で?
チェーン内のすべての約束が完了した後にカウントダウンがリセットされた場合、適切な練習はit()/fit() blocks
の直接の子として約束を得ることでしょうか?
以下に、私が何を求めようとしているかを説明するためのサンプルコードを示します。 allScriptsTimeout
について
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.私は本当にこれがためにカウントし、これを理解していない:各ファイル内の1つのスペック? これについて少し説明できれば、それは素晴らしいことでしょう。
ありがとうございました、私はラインから方法を考えていた! –