У меня есть следующий компонент:
export class VehiclesComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
cars: [],
};
autoBind(this);
}
componentDidMount () {
this.fetchData();
}
fetchData() {
const {
query,
filter,
hasAccess,
value2,
value,
value3,
name,
topics,
} = this.props;
const { data } = this.state;
return DataService.getCars(
filter,
hasAccess,
query,
).then(({ cars }) => {
this.setState({
cars,
});
});
};
render() {
return(
{this.state.cars.map(car => (
<Car
key={car.id}
{...car}
/>
))}
)
}
};
Я хочу проверить это с шуткой / энзимом, особенно с логикой того, сколько автомобильных компонентов отрисовано. Поэтому я издевался над модулем DataService так:
import DataService from '../../services/DataService';
import Car from '../../Car';
import cars from '../cars'; // cars array which has 9 cars
jest.doMock("../../services/DataService", () => ({
getCars: jest.fn(() => Promise.resolve(cars)),
}));
test('should render 9 tabs', () => {
expect(wrapper.find(Car).length).toEqual(9);
});
Но у меня есть ошибка:
expect(received).toEqual(expected)
Expected value to equal:
9
Received:
0
Я не уверен, работают ли смоделированные модули так, как ожидается от них во время поверхностного рендеринга компонента. Может кто-нибудь помочь выяснить, почему я могу иметь эту ошибку?