我正在使用庫React-Reponsive。 https://github.com/contra/react-responsive如何使用酶測試React-Responsive組件?
我竭力要弄清楚如何測試嵌套在陣營響應媒體查詢組件組成:
export default class AppContainer extends React.Component {
render(){
return(
<MediaQuery minDeviceWidth={750}>
<Header />
</MediaQuery>
);
}
}
-
describe("AppContainer",() => {
let App;
let wrapper;
beforeEach(() => {
wrapper = mount(<Provider store={store}><AppContainer location={location} /></Provider>);
App = wrapper.find(AppContainer);
});
it('to have a <Header /> component',() => {
console.log(App.debug());
expect(App.find(Header)).to.have.length(1);
});
}
測試結果:
1) AppContainer to have a <Header /> component:
AssertionError: expected { Object (component, root, ...) } to have a length of 1 but got 0
輸出的相關部分的console.log是:
<MediaQuery minDeviceWidth={750} values={{...}} />
指示標頭確實沒有出現在渲染樹中。但是,如果我移除MediaQuery並使Header成爲測試通過的AppContainer的直接子元素。
我想這不是一個錯誤,因爲我對酶和測試組件一般都很陌生。任何幫助或例子,將不勝感激。
請注意:我對這個組件的其他測試通過的很好。我相信進口和設置都是正確的。
豈不是'期待(App.find(MediaQuery))來。有。(1);' – vijayst
是的,它可以用於測試媒體查詢,但我正在尋找的是如何在這種情況下測試標題 –