【发布时间】:2018-07-23 03:36:08
【问题描述】:
我在我的 react 组件中找不到如何检查 div 的 CSS。
您可以检查内联样式 (How can I test React component's style with Jest + Enzyme?)
但这不会让我检查我的组件的className='App-header'。
我已经成功添加了chai-jquery,但是我不知道如何让我的组件完全加载,我只返回了<body></body。
回答 1 of 3 将解决我的问题:
1.如何在没有 <div> 的 CSS 作为内联样式的情况下测试/检查我使用 expect(wrapper.find('#id'))... 找到的 div 的类 CSS。
2。我如何确保我的完整组件呈现,因为现在 jquery 只返回 <body></body>,但我的 chai/enzyme 使用 shallow(<App />) 返回我的完整组件?
3.有没有办法测试 CSS 样式表?也许这是一种解决方法。
.
it('should have a header with display: block', (done)=>{
const wrapper = shallow(<App />);
const body = $('body')
console.log(body) // Returns <body></body>
expect(body).exist; // Returns true
expect(body).to.have.css('display', 'block'); //nothing in body, doesn't work
expect(wrapper.find('#body').get(0).props).to.have.property({display: 'block'}) //not in the props because CSS comes from className
done()
})
参考资料:
尝试使用断言失败 (how to test showing an element after a click?)
好主意,但需要内联样式 (How to test style for a React component attribute with Enzyme)
【问题讨论】:
-
你想检查
body有一个类App-header 并且这个类包含display: block作为样式吗? -
基本上。我想看看有 App-header 类的主体中是否有
display: block,但我也可以仔细检查该类。但是如果我这样做,我也可以确保该类存在,因为我会知道该类的 CSS。如果还有其他类,我希望测试查看身体也有的那些类
标签: jquery reactjs unit-testing chai enzyme