Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript测试-使用axios验证授权标头是否正确_Javascript_Testing_Mocking_Sinon_Axios - Fatal编程技术网

Javascript测试-使用axios验证授权标头是否正确

Javascript测试-使用axios验证授权标头是否正确,javascript,testing,mocking,sinon,axios,Javascript,Testing,Mocking,Sinon,Axios,我正在使用axios拦截器在请求头中设置授权令牌 axios.interceptors.request.use(config => { config.headers.Authorization = 'Bearer ' + Auth.getToken() return config }) 如何测试我的请求是否在头中使用正确的令牌发送 注:我正在使用Mocha+Chai来模拟Axios,并从以下配置对象中获取请求信息: .reply((config) => {}) 例如: i

我正在使用axios拦截器在请求头中设置授权令牌

axios.interceptors.request.use(config => {
  config.headers.Authorization = 'Bearer ' + Auth.getToken()
  return config
})
如何测试我的请求是否在头中使用正确的令牌发送

注:我正在使用Mocha+Chai来模拟Axios,并从以下配置对象中获取请求信息:

.reply((config) => {})
例如:

import MockAdapter from 'axios-mock-adapter'

const axiosMock = new MockAdapter(axios)

axiosMock.onGet('https://api.com').reply((config) => {
    return [200, { requestHeaders: config.headers }]
});

const response = await axiosWrapper.get('https://api.com')
expect(response.data.requestHeaders['Authorization'] === 'AUTH_TOKEN')

为了测试头中是否有正确的令牌,集成测试更合适。当正确的令牌位于标头中时,API响应应该与向API发送请求时发送的不正确令牌不同。

如果要在响应中测试标头,可以执行以下操作:

    const mock = new MockAdapter(axios);
    mock.onGet('/anon/getUser').reply(200, {/*response.data*/}, {'my-header-key': 'my-value' });

*response.data在此是可选的。他希望测试头文件,而不是模拟它们。在不侵入
response.data
的情况下,是否可以这样做?如果您没有按照axiosWrapper变量使用自定义axios实例(即axios.create),并且不确定这是从何而来,您可以使用默认axios替换axiosWrapper(即axiosWrapper.get(')变成axios.get(')。希望这能帮助任何想知道axiosWrapper从何而来的人!