2017-10-20 103 views
1

是否有方法使用酶浅法和样式化组件的ThemeProvider包装来测试样式化组件的文本内容?如何使用Enzymes浅色和样式组件的ThemeProvider测试样式化组件?

class MyComponent extends React.component { 
    ... 
    render(){ 
     return (
      <StyledComponent_A> 
       <StyledComponent_B> 
        some text 
       </StyledComponent_B> 
      </StyledComponent_A> 
     ); 
    } 
} 

test('text is \'some text\'',() => { 
    const wrapper = shallow(
    <ThemeProvider theme={theme}>   
     <MyComponent /> 
    </ThemeProvider 
    ); 
    const text = wrapper.dive().find(StyledComponent_B).text(); 
    expect(text).toBe('some text'); 
}); 
+0

我相信这仅适用于酶的坐骑()。 – stephenway

回答

0

使用浅您文本()输出是类似的东西<styled.section />

所以你需要使用儿童(),获得风格元素的内容。 事情是这样的:

const text = wrapper.find(StyledComponent_B).children().text(); expect(text).toBe('some text');