0

我需要测试 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。

4

0 回答 0