我正在使用react-create-app申请。对于测试,我需要为请求设置全局标头。所以当我正在调用REST API时,我可以将测试用户发送到REST API。我想基于每个测试或全局设置标头。
我读过react-create-app正在使用Jest来运行测试,也就是jsdom。我想知道是否可以操作标题用于测试目的?
答案 0 :(得分:0)
如果您需要在运行任何测试之前全局设置标头,只需向react-create-app项目添加src/setupTests.js
并在该文件中设置默认标头即可。对于在当前文件中运行任何测试之前设置默认标头,您可以使用jest beforeAll
方法。
您设置默认标头的方式完全基于您用来调用Rest API的API或库。
例如,如果您使用axios来调用API,则可以使用以下代码在src/setupTests.js
中全局设置默认标头。
<强> src/setupTests.js
强>
import axios from 'axios';
axios.defaults.headers.common['my-default-header'] = 'my-default-value';
如果您使用的是JavaScript Fetch API,请使用fetch-intercept
import fetchIntercept from 'fetch-intercept';
const unregister = fetchIntercept.register({
request: function (url, config) {
const withDefaults = Object.assign({}, config);
withDefaults.headers = defaults.headers || new Headers();
withDefaults.headers.append('my-default-header', 'my-default-value');
return [url, withDefaults];
}
});