Javascript测试-使用axios验证授权标头是否正确
我正在使用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.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从何而来的人!