Я использую библиотеку React-Reponsive. https://github.com/contra/react-responsive
Я изо всех сил пытаюсь понять, как тестировать компоненты, вложенные в React-Responsive Media Query Components:
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 и сделаю заголовок прямым потомком AppContainer, тест пройдет.
Я полагаю, что это не ошибка, поскольку я новичок в Enzyme и тестировании компонентов в целом. Любая помощь или примеры будут оценены.
Обратите внимание: другие тесты, которые у меня есть на этом компоненте, проходят нормально. Я уверен, что импорт и настройка верны.
expect(App.find(MediaQuery)).to.have.length(1);
- person vijayst   schedule 25.08.2016