Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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 Mocha测试无法访问全局变量_Javascript_Reactjs_Mocha.js_Chai_Redux - Fatal编程技术网

Javascript Mocha测试无法访问全局变量

Javascript Mocha测试无法访问全局变量,javascript,reactjs,mocha.js,chai,redux,Javascript,Reactjs,Mocha.js,Chai,Redux,我收到一个引用错误:未定义NC\U设置 "use strict"; import forOwn from 'lodash/object/forOwn'; import { assert, expect, should } from 'chai'; import { spy } from 'sinon'; import { applyMiddleware } from 'redux'; import configureMockStore from 'redux-mock-store'; imp

我收到一个引用错误:未定义NC\U设置

"use strict";


import forOwn from 'lodash/object/forOwn';
import { assert, expect, should } from 'chai';
import { spy } from 'sinon';
import { applyMiddleware } from 'redux';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import {
    REQUEST_ADD_PASSWORD_RESET_REQUEST,
    REQUEST_ADD_PASSWORD_RESET_REQUEST_SUCCESS,
    REQUEST_ADD_PASSWORD_RESET_REQUEST_FAILURE
} from 'actions/types';
import nock from 'nock';
import Actions from 'actions';
import fetch from 'isomorphic-fetch';

const middlewares = [ thunk ];
const mockStore = configureMockStore(middlewares);

var NC_SETTINGS = require('/home/tai/Gravitate/nc-app/taimoor/settings').NC_SETTINGS;
describe('forgot password async actions', () => {
    afterEach(()=> {
        nock.cleanAll();
    });

    //mockActions();
    //console.log(Actions.addPasswordResetRequest().addPasswordResetRequestAPI());
    it('should show a request for a password reset and that it succeeded ', (done) => {

        console.log(NC_SETTINGS);
        nock('http://localhost:8080/')
        .post('/password-reset-requests')
        .reply(200);
        var email = "test@email.com";
        const expectedActions= [
            {type: REQUEST_ADD_PASSWORD_RESET_REQUEST},
            {type: REQUEST_ADD_PASSWORD_RESET_REQUEST_SUCCESS}
        ];
        const store = mockStore({}, expectedActions, done);
        store.dispatch(Actions.addPasswordResetRequest());
        //unMockActions();
        //
        //console.log(actions);
        //expect(actions.addPasswordResetRequest("email")).to.equal(expectedAction);

  });

});
因此,当I console.log NC_设置时,它确实会显示。但是,当我运行store.dispatch(Actions.addPasswordResetRequest)时,我得到的NC\U设置没有定义。我之所以认为导入NC_设置可能有效,是因为它可以用于导入同构获取,我也遇到了类似的问题

是否有办法将全局变量导入MochaJs,以便我的操作可以访问NC_设置

我应该提到store.dispatch(Actions.addPasswordResetRequest())链接到一个Actions文件,该文件将发送到js文件中的api调用。最后的js文件是NC_设置所在的位置,也是调用错误的位置。在浏览器中,这可以正常工作


在摩卡咖啡中进行测试时,是否有一个全局变量列表并添加它们的方法?

不要这样做,但您可以使用:

global.NC_SETTINGS = ...
将其设置为nodejs全局变量。这应该在
操作
中找到

然而,出于许多原因,全局变量是您想要避免的。相反,您可能希望执行某种依赖项注入。两种可能性是:

  • 操作
    作为一个类实现,并在将
    NC_设置
    作为构造参数传递的地方实例化它
  • 使用模块。在这种情况下,NC_设置可以是
    操作
    模块中的顶级变量,但不是全局变量