【发布时间】:2021-06-01 23:25:31
【问题描述】:
如何测试调用 get API 并输出响应的函数。 我试过了,但我能够测试处于状态的初始数据,但我想知道如何测试调用 API 时更新初始状态的函数。
代码示例我尝试过的内容。 CodeSandboxLink : [testing code]1
上下文 API
这里我调用了函数userDataFunc,它在上下文中,初始数据存储在状态userData
import React, { Component, createContext } from "react";
import axios from "axios";
export const globalC = createContext();
export class Gprov extends Component {
state = {
userData: []
};
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
})
);
};
render() {
return (
<globalC.Provider
value={{
...this.state,
userDataFunc: this.userDataFunc
}}
>
{this.props.children}
</globalC.Provider>
);
}
}
上下文测试文件
在这里,我执行了一些测试,例如通过测试用例的初始状态值,但我无法测试该功能,谁能帮帮我。
import React from "react";
import { Gprov } from "./context";
import { create } from "react-test-renderer";
import { waitForElement, cleanup } from "@testing-library/react";
import axiosMock from "axios";
afterEach(cleanup)
describe("Context Page", async () => {
const component = create(<Gprov />);
const instance = component.getInstance();
it("it updates dose correctly", () => {
console.log("instance", instance);
expect(instance.state.userData).toStrictEqual([]);
});
it("fetches data and display", async () => {});
});
【问题讨论】:
-
@streletss,你能帮帮我吗?
标签: reactjs jestjs react-testing-library react-context react-test-renderer