2016-11-24 36 views
4

組件我有一個組件,我用酶試驗,看起來像下面這樣:酶不是通過尋找道具

<RichTextEditor name="name" onChange={[Function]} value="<p>what</p>" focus={false}> 
    <div className="rich-text-editor"> 
    <div className="btn-group" role="group"> 
    <StyleButton active={false} icon="fa-list-ul" label="UL" onToggle={[Function]} style="unordered-list-item"> 
    // ... 

我試圖檢測StyleButton成分的存在有像這樣:

mount(<RichTextEditor />).find('StyleButton[label="UL"]') 

但是沒有組件被返回。我可以通過搜索字符串「StyleButton」找到所有的StyleButton,但是我無法通過屬性找到,包括僅僅通過使用屬性選擇器。

我粘貼的第一個代碼塊來自安裝RichTextEditor的調試輸出,所以StyleButton肯定存在。

任何想法?

謝謝。

回答

11

在文檔沒有選擇與道具混合組件的名稱:

  • CSS選擇器
  • 組件構造
  • 組件顯示名稱
  • 對象屬性選擇

您可以使用findWhere

wrapper.findWhere(n => n.name() === 'StyleButton' && n.prop('label') === 'UL') 
+0

哦,你是對的。我混淆了組件+屬性的標籤+屬性css選擇器。我認爲我在其他源代碼中看到過類似的情況,但並不完全如此。謝謝。 – whalabi

+1

你可以結合'find'和'findWhere':'wrapper.find('StyleButton')。findWhere(n => n.prop('label')==='UL')' – romanlv