2
browser.sleep(4000);
var discount_type = element(by.id("discount_type"));
var discount_value= element(by.id("discount_value"));
var grandTotal = element(by.id("grand-total"));
var subtotal = element(by.id("subtotal"));
var delivery_fee = element(by.id("delivery_fee"));
var last = protractor.promise.defer();
console.log("hallo");
subtotal.getText().then(function(sub) {
console.log("#############");
console.log(sub);
delivery_fee.getText().then(function(fee) {
console.log(fee);
var calc = parseFloat(sub) - parseFloat(fee) - parseFloat(config.promocodes.referral.discount);
console.log(calc);
last.fulfill(calc);
});
});
last.then(function(calc) {
console.log("final wait");
expect(grandTotal.getText()).toBe("$" + calc);
});
Мне нужно рассчитать значение, прежде чем я могу быть уверен, что мой тест прошел нормально.транспортир: тест всегда разыгрывается, не отображается обещание
В моих тестах я всегда вижу «hallo» в консоли. Тогда я получаю
> hallo
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
> F
>
> Failures: 1) Refer a user and apply referral code should assign
> referral discount to user Message:
> Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL. Stack:
> Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
> at Timer.listOnTimeout (timers.js:92:15)
Кажется код никогда не входит в subtotal.getText()
обещание! Почему это???
booah @alecxe это неожиданно для меня (я только сейчас изучаю обещания). Кажется, у меня есть много, чтобы узнать еще с обещаниями. Благодарю. – faboolous