Reactjs 如何使用样式化组件测试样式化组件';谁是提供者?

Reactjs 如何使用样式化组件测试样式化组件';谁是提供者?,reactjs,enzyme,styled-components,Reactjs,Enzyme,Styled Components,有没有一种方法可以使用样式化组件的方法和样式化组件的ThemeProvider包装器来测试样式化组件的文本内容 class MyComponent extends React.component { ... render(){ return ( <StyledComponent_A> <StyledComponent_B> some text

有没有一种方法可以使用样式化组件的方法和样式化组件的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');
});
类MyComponent扩展了React.component{
...
render(){
返回(
一些文本
);
}
}
测试('文本是'一些文本',()=>{
常数包装=浅(
使用文本()输出类似于

因此,您需要使用children(),以获取样式化元素的内容。 大概是这样的:

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

我相信这只适用于酶的mount()。