2017-05-26 39 views
0

有人知道如何使用Sencha Test 2.1驗證消息框內的文本?Sencha測試驗證MessageBox的內容

我成功地獲取實際的MessageBox這樣的:

ST.panel('messagebox').visible(); 

所以我想要做的事,如:

ST.panel('messagebox').visible().expect('value').toEqual('Awesome, all went well!'); 

我試過值,文本等不能似乎找到一個財產使用。

回答

1

高興你想通出一個解決方案。如果你想更直接斷言的「HTML」,可以做些像這樣:

it('should have the right html', function() { 
    Ext.Msg.alert('Title', 'Awesome, all went well'); 

    ST.panel('messagebox') 
     .gotoComponent('[cls=x-window-text]') 
     .get('html') 
     .and(function() { 
      expect(this.future.data.html).toBe('Awesome, all went well'); 
     }); 
}); 

甚至更​​緊湊:

it('should have the right html', function() { 
    Ext.Msg.alert('Title', 'Awesome, all went well'); 

    ST.panel('messagebox') 
     .gotoComponent('[cls=x-window-text]') 
     .expect('html') 
     .toBe('Awesome, all went well'); 
}); 

http://docs.sencha.com/sencha_test/2.1.0/api/ST.future.Component.html#method-get

+0

這確實是最好:) 但是我不能像那樣我使用html。 我得到期望undefined是'真棒,一切順利'。 你試過這個嗎? –

+1

啊,對不起,你是對的。 MessageBox中有許多嵌套的組件,所以我們需要首先找到正確的組件,然後從中抽取html。我用一個工作示例更新了答案。謝謝! –

1

我做這樣的: (此代碼是一個網頁對象中)

messageBox: function() { 
     return ST.panel('messagebox').visible(); 
}, 

this.messageBox().element('[html="Awesome, all went well!"]').visible(); 

(不,這不是真正的消息框的內容;))