Я реализовал выборку и тестирование, как показано ниже, но это дает ошибку (я плох в модульном тестировании).
Main.js
import React, { Component } from 'react';
class Main extends Component {
constructor(props) {
super(props);
this.state = {
testData: [],
}
}
componentDidMount() {
fetch('http://testurl.com/testData')
.then(response => response.json())
.then(result => this.setState({ testData: result }));
}
render() {
const {testData} = this.state;
return (
<div className="main">
{ testData.data &&
<section>
<CustomComponent movies={ testData.data } />
</section>
}
</div>
);
}
}
export default Main;
Main.test.js
import React from 'react';
import ReactDOM from 'react-dom';
import { mount, shallow } from 'enzyme';
import { fetchMock } from 'fetch-mock';
import Main from "../src/Main";
import testData from './_mockData_/testData'
it('should render without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<Main />, div);
ReactDOM.unmountComponentAtNode(div);
});
describe('should renders Main correctly', () => {
fetch('http://testurl.com/testData').then(res => {
expect(res.data).toEqual(testData)
})
});
Даже я пытался использовать http://www.wheresrhys.co.uk/fetch-mock/, но не имеет никакого значения.
describe('should renders Main correctly', () => {
fetchMock.get('http://testurl.com/testData').then(res => {
expect(res.data).toEqual(testData)
})
});
Всегда получаю следующую ошибку.
ReferenceError: выборка не определена
Извлечение по умолчанию не включено в узел, и вам необходимо установить модули, экспортирующие его. Пожалуйста, смотрите ниже образец для названия модуля и использования.
const fetch = require("node-fetch");
fetch("https://github.com/")
.then(res => res.text())
.then(body => console.log(body));