如何使用 Jest 或测试库测试上下文文件

时间:2021-03-02 10:12:29

标签: reactjs jestjs react-testing-library babel-jest

我是测试新手,谁能指导我如何测试上下文。 我在函数内部调用了 API 如何使用 jest 或 react 测试库测试响应或函数。

CodesandBox 链接:Code

上下文 API 文件

我在 userDataFunc 中调用 API 的地方,我想测试该函数是否存在以及它的响应是成功响应还是捕获响应

import React, { Component, createContext } from "react";
import axios from "axios";

export const globalC = createContext();

export class Gprov extends Component {
  state = {
    authLogin: null,
    authLoginerror: null,
    count: 1,
    user: null
  };
  componentDidMount() {}

  userDataFunc = async () => {
    await axios(`https://jsonplaceholder.typicode.com/users`)
      .then((res) => {
        if (res.status === 200) {
          this.setState({
            userData: res.data
          });
        }
      })
      .catch((err) =>
        this.setState({
          userDataerror: err
        })
      );
  };

  handleChange = (e) => {
    this.setState({ [e.target.name]: e.target.value });
  };
  handleSubmit = (e) => {
    e.preventDefault();
    this.setState({
      user: this.state.username
    });
  };
  render() {
    
    return (
      <globalC.Provider
        value={{
          ...this.state,
          loginData: this.loginData,
          handleChange: this.handleChange,
          handleSubmit: this.handleSubmit,
          userDataFunc: this.userDataFunc
        }}
      >
        {this.props.children}
      </globalC.Provider>
    );
  }
}

0 个答案:

没有答案
相关问题