如何通过Jest和Enzyme测试useEffect中的axios获取请求?

时间:2020-07-24 15:18:51

标签: reactjs jestjs axios enzyme axios-mock-adapter

我正在使用axois-mock-adapter,笑话和酶测试我的axios获取请求。运行测试时,控制台中出现404错误。一旦我将axios呼叫置于useEffect中,它便开始发生。

关于我可能做错了什么的任何建议?预先感谢

App.js

lang.py <- structure(list(lat_x = c(35, 35, 35), lon_x = c(66, 66, 66), lat_y = c(41, 36.5, -13.92), lon_y = c(20, 5, -171.83)), class = "data.frame", row.names = c(NA, -3L))

App.test.js

function App() {
    const [keyword, setKeyword] = useState("")
    const [searchResults, setSearchResults] = useState([])

    useEffect(() => {
        getDataService(keyword)
        .then(({ data }) => {
            setSearchResults(data.suggestions)
        })
        .catch(err => console.log(err))
    }, [keyword])

    return (
        <div className="App">
            <form className="container">
                <InputField keyword={keyword} setKeyword={setKeyword} />
                <SearchResults keyword={keyword} searchResults={searchResults} />
            </form>
        </div>
    );
}

错误:错误:请求失败,状态码为404

1 个答案:

答案 0 :(得分:0)

如果测试通过,而您只是想抑制这些警告(我不知道为什么这些警告会以axios-mock-adapter弹出),您可以这样做:

之前

const error = console.error;
console.error = jest.fn();

之后

console.error = error;