React / JS - 在使用Mocha进行测试期间,某些文件无法导入

时间:2016-01-08 21:23:21

标签: javascript reactjs mocha chai redux

我在测试期间遇到了导入问题。测试框架是Mocha,我正在使用chai和sinon。我认为这是我对Javascript中范围如何工作的理解的一个问题。尽管如此。

这是我的测试文件: 测试/动作/忘记密码

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

describe('forgot password async actions', () => {
    afterEach(()=> {
        nock.cleanAll();
    });
    it('should show a request for a password reset and that it succeeded ', (done) => {
        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(email));
              });

});

这是我的行动所做的api调用

API / users.js

'use strict';

export const addPasswordResetRequest = (email) => {
    console.log(NC_SETTINGS.API_ROOT);
    return fetch(
        NC_SETTINGS.API_ROOT + '/password-reset-requests',
        {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                email: email,
                code: NC_SETTINGS.GROUP.code
            })
        }
    )
        .then(handleResponse);
};

因此,当我正常运行它时,在浏览器中,我没有错误。 Fetch被调用得很好,文件知道NC_SETTINGS文件的位置。

我应该提一下我项目的文件结构。

-project

--app folder
---js folder
----api folder
-----users.js(this makes the call to fetch)

--settings folder
---settings.js file(this has nc_settings)
--test folder
---testing file

在local_web上输入它们就好了。

但是当我测试时,找不到fetch和nc_settings。

为了解决fetch问题,我在api / users.js中导入了同构提取,修复了测试期间的提取问题。然后我尝试导入app / settings / settings,它确实找到了该文件。但是它仍然没有解决问题。它现在出现了未定义。

这背后的原因是什么?这是一个提升范围问题吗?这是如何解决的?

0 个答案:

没有答案