2016-07-21 3 views
2

Я ожидаю, что value_key (перевод) будет найден транспортиром и вернет true, чтобы тест прошел успешно.Сообщение об ошибке уклониста возвращает объект

В моем тестовом-spec.js файл я

it('test if tile "Value of Key" shows result text', function() { 
    expect(
    element(by.xpath('//*[@id="idname"]/div/h3') 
    ).getText()).toEqual(helpers.translate('value_key')); 
}); 

транспортир ошибка Сообщение: Ожидаемое 'Значение ключа' равный объект ({$$ состояние: Object ({положение: 0}), catch: Object ({}), затем: Object ({}), наконец: Object ({})}).

Спасибо за вашу помощь

+0

helpers.translate ('value_key'), что он вернет, Могу ли я увидеть код для него? –

ответ

0

Выглядит как helpers.translate() функция возвращает обещание.

В транспортировке/жасмине, только левая часть утверждения - часть expect() способна разрешать обещания неявно. Правая часть, toEqual() в вашем случае, нет.

Resolve обещание явно:

helpers.translate('value_key').then(function(value) { 
    var text = element(by.xpath('//*[@id="idname"]/div/h3')).getText(); 
    expect(text).toEqual(value); 
}); 

Вы также можете использовать protractor.promise.all() разрешить оба обещания, а затем утверждать:

var promise1 = element(by.xpath('//*[@id="idname"]/div/h3')).getText(); 
var promise2 = helpers.translate('value_key'); 

protractor.promise.all([promise1, promise2]).then(function(values) { 
    expect(values[0]).toEqual(values[1]); 
}); 

Не то, что в настоящее время существует issues with using protractor.promise.all() in 4.0.0 (должно быть fixed in the next version(s)). Обходной путь доступен здесь.

Смежные вопросы