【发布时间】:2021-06-04 18:27:33
【问题描述】:
这是我编写 axios 逻辑的 apis.js
import axios from 'axios'
function logSuccess(req, res, next) {
console.log(req, res)
next(res)
}
function logError(req, res, e, next) {
console.log(req, res, e)
next(e)
}
function getResource(url, onComplete) {
let _onSuccess = (res) => logSuccess(url, res, onComplete)
let _onError = (res, e) => logError(url, res, e, onComplete)
let _onException = (e) => logError(url, null, e, onComplete)
axios
.get(url)
.then((res) => {
res ? _onSuccess(res) : _onError(res)
}, _onException)
.catch(_onException)
}
function postResource(url, data, cancelTokenSource, onComplete) {
let _onSuccess = (res) => logSuccess(url, res, onComplete)
let _onError = (res, e) => logError(url, res, e, onComplete)
let _onException = (e) => logError(url, null, e, onComplete)
axios
.post(url, data, { cancelToken: cancelTokenSource.token })
.then((res) => {
res ? _onSuccess(res) : _onError(res)
}, _onException)
.catch(_onException)
}
const apis = {
getResource,
postResource,
}
export default apis
这是我调用 axios 函数的另一个文件:
import apis from '../../commonUtils/apis/apis'
export default class LookingGlassAPIs {
constructor(params) {
let { apiRoot } = params
this.routers = {}
this.commandRequests = {}
this.routers.getAll = (...rest) =>
apis.getResource(apiRoot + 'routers', ...rest)
this.commandRequests.post = (...rest) =>
apis.postResource(apiRoot + 'commandRequests', ...rest)
}
}
const apiRoot = 'http://127.0.0.1:8080/'
我是新来的反应我不知道为 axios 编写测试用例而不点击 api。任何人都可以帮助我。url 在另一个文件中定义但仅供参考,我只在此处标明。我应该使用 axios.get.mockResolvedValue(data)???是正确的方式吗??
【问题讨论】:
标签: reactjs jestjs react-testing-library