react-create-app测试集默认标头

时间:2017-06-14 08:52:33

标签: reactjs testing

我正在使用react-create-app申请。对于测试,我需要为请求设置全局标头。所以当我正在调用REST API时,我可以将测试用户发送到REST API。我想基于每个测试或全局设置标头。

我读过react-create-app正在使用Jest来运行测试,也就是jsdom。我想知道是否可以操作标题用于测试目的?

1 个答案:

答案 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];
    }
});