Я пишу простой тест для определенного компонента моего приложения, используя react-test-render
, и тест ожидает рендеринга компонента.
Я попытался реализовать свойства, необходимые для компонентав тестовом файле и до сих пор нет результатов, охват тестирования компонента по-прежнему на низком уровне.тест проходит успешно, я думаю, что проблема в функциях.
class Component extends React.PureComponent {
constructor(props, context) {
super(props, context);
this.function1 = this.function1.bind(this);
this.function2 = this.function2.bind(this);
}
handleRef(element) {
const { var1 } = this.props;
this.iframe = element;
if (var1) {
var1(element);
}
}
function2() {
const {
var2,
var3,
var4,
} = this.props;
if (!var2(this.iframe) && var3) {
var3();
localytics.tagEvent({ pageName: 'string' });
return;
}
if (var3) {
var3();
performanceLog('The iframe has loaded at: ');
localytics.tagEvent({ pageName: 'homepage:ok' });
}
}
render() {
//render html
}
}
AppFrame.propTypes = {
//proptypes
};
AppFrame.defaultProps = {
//default props
};
export default withStyles(styles)(AppFrame);
код теста:
import React from 'react';
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16.3';
import renderer from 'react-test-renderer';
import AppFrame from '../index';
configure({ adapter: new Adapter() });
describe('<AppFrame />', () => {
it('Expect to render', () => {
const renderedComponent = renderer.create(
<AppFrame var1="test" var2={() => {}} />
).toJSON();
expect(renderedComponent).toMatchSnapshot();
});
});
скриншот покрытия теста: