2016-07-21 39 views
2

我期望通過量角器找到value_key(translation)並返回true,以便測試成功。量角器錯誤消息返回一個對象

以我測試spec.js文件I

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')); 
}); 

量角器錯誤 消息: 預計等於對象 '鍵的值'({$$狀態:對象({狀態:0}), catch:Object({}),然後:Object({}),finally:Object({})})。

謝謝您的幫助

+0

helpers.translate('value_key')它會返回什麼,我可以看到它的代碼? –

回答

0

它看起來像你的helpers.translate()功能返回一個承諾

在量角器/茉莉花中,只有斷言的左側部分 - expect()部分能夠隱式地解決承諾。在你的情況下,右邊部分toEqual()不是。

解決的承諾明確

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))。解決方法可在此處找到。