我需要测试 axios 帖子并对其进行快照,这是 app.js 代码的片段。
handleClick = e => {
axios
.post(
"https://api.openweathermap.org/data/2.5/weather?q=" +
this.state.term +
"&units=metric&appid=" +
API_KEY
)
.then(res => {
this.setState({
city_name: res.data.name,
temp: res.data.main.temp,
humidty: res.data.main.humidity,
wind: res.data.wind.speed,
weather_status: res.data.weather[0].main,
weather_desc: res.data.weather[0].description,
weather_icon: res.data.weather[0].icon
});
})//error logging
.catch(error => {
console.log(error);
});
};
我需要使用 Jest 来测试 API 调用并拍摄快照。我以前从未使用过 Jest。这是我到目前为止得到的,但它不起作用:
应用程序.test.js
import React from 'react';
import renderer from 'react-test-renderer';
import App from './App';
it('renders correctly', () => {
const tree = renderer
.create(<handleClick = e => {
axios
.post(
"https://api.openweathermap.org/data/2.5/weather?q=" +
this.state.term +
"&units=metric&appid=" +
API_KEY
)
.then(res => {
this.setState({
city_name: res.data.name,
temp: res.data.main.temp,
humidty: res.data.main.humidity,
wind: res.data.wind.speed,
weather_status: res.data.weather[0].main,
weather_desc: res.data.weather[0].description,
weather_icon: res.data.weather[0].icon
});
})//error logging
.catch(error => {
console.log(error);
});
};>)
.toJSON();
expect(tree).toMatchSnapshot();
});
我认为 Jest 已经用 npm install 安装了,但是网上的一些信息建议用 npm install --save-dev jest 安装 jest。