Я работаю над проектом с использованием React, я использую Material-UI только для компонентов, содержащих формы. Когда я запускаю тест, компоненты с формами (которые используют материальный пользовательский интерфейс) проходят успешно, но проблема заключается в том, что в компонентах нет форм, поэтому он не использует какие-либо материальные компоненты пользовательского интерфейса, тест не проходит!
Когда я запускаю тест, он не передает эти компоненты и показывает:
● Natural
Material-UI: expected an Element but found null. Please check your console for additional warnings and try fixing those. If the error persists please file an issue.
5 |
6 | test('Natural', () => {
> 7 | const story = renderer.create(<BrowserRouter> <Story /> </BrowserRouter>).toJSON();
| ^
8 | expect(story).toMatchSnapshot();
9 | });
10 |
Это мой тестовый код:
import React from 'react';
import renderer from 'react-test-renderer';
import { BrowserRouter } from 'react-router-dom';
import Story from './index';
test('Natural', () => {
const story = renderer.create(<BrowserRouter> <Story /> </BrowserRouter>).toJSON();
expect(story).toMatchSnapshot();
});
А это мой код компонентов:
import React, { Fragment } from 'react';
import Footer from '../Common/Footer';
const Story = () => {
return (
<Fragment>
<main>
<h1>Hello Story page!</h1>
</main>
<Footer />
</Fragment>
);
};
export default Story;
Я ожидаю, что тест будет пройден!
Footer
не использует компонент Material-UI. Основываясь на сообщении (которое, как я полагаю, существует только в версии 4, поэтому я предполагаю, что это то, что вы используете), я ожидал, чтоFooter
использует Material-UIButton
или что-то еще, что используетButtonBase
. - person Ryan Cogswell   schedule 22.05.2019Material UI
вFooter
, я это пропустил. У вас есть идеи, которые помогут решить эту проблему? - person Muhammad Al-Shareef   schedule 23.05.2019