无法在webdriverio测试文件中导入Redux存储

时间:2018-08-28 16:30:18

标签: reactjs redux webdriver-io

我正在尝试导入我的redux存储,以便确保可以正确访问该存储并对其进行设置,但是尝试导入redux存储会给我以下错误:

 ERROR: Unexpected token import
firefox
/Users/Name/Desktop/project/internal-dashboard/dashboard/src/store.js:1
(function (exports, require, module, __filename, __dirname) { import rootReducer from './reducers/rootReducer';
                                                              ^^^^^^

Syntax    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:607:28)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Module.require (module.js:587:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/Name/Desktop/project/internal-dashboard/dashboard/test/login.js:2:15)

不确定为什么会告诉我这是一个意外令牌。启动该应用程序后,该应用程序可以正常运行,为什么运行webdriverio测试时,为什么存储文件中使用的导入令牌存在问题?

这是商店文件:

import rootReducer from './reducers/rootReducer';
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import { composeWithDevTools } from 'redux-devtools-extension';


const store = createStore(
    rootReducer,
    composeWithDevTools(applyMiddleware(thunk))
);

export default store;

这是我的登录测试

let assert = require('assert');
import store from '../src/store';

describe("Login Page", () => {
    console.log(store.getState());
    it('should tell user to enter a username', () => {
        browser.url('./');
        let loginHeader = $('p=SIGN IN');
        loginHeader.waitForExist(20000);

        browser.setValue('#username', '');
        browser.setValue('#password', '');
        browser.click('.ui.button');

        let enterUsernameDiv = $('div=Please enter a username');
        enterUsernameDiv.waitForExist(10000);
    });
}

2 个答案:

答案 0 :(得分:0)

您无法使用webdriverio真正打开redux存储,webdriverio不了解您的代码,它会打开浏览器并导航到页面。

为了检查您的redux存储,您需要使用单元测试,例如jest。您现在正在做的更多是功能测试。

答案 1 :(得分:0)

redux website上的安装指南中所述

  

请注意,与Redux本身不同,Redux生态系统中的许多软件包   不提供UMD版本,因此我们建议使用CommonJS模块   像Webpack和Browserify这样的打包机最舒适   开发经验。

在没有反应的节点上单独使用redux时执行以下操作将解决问题

import { createStore, applyMiddleware } from 'redux';

成为

const { createStore, applyMiddleware } = require('redux');