Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
为什么摩卡测试redux减速器失败?_Redux_Mocha.js_Chai - Fatal编程技术网

为什么摩卡测试redux减速器失败?

为什么摩卡测试redux减速器失败?,redux,mocha.js,chai,Redux,Mocha.js,Chai,所以我想我创建了一个简单的测试来确认我为redux减速机设置的mocha/chai测试,但是由于我无法识别的原因,这个初始测试失败了。一切都是按照计划安排的。没有与es6相关的错误 文件结构 client |-reducers | |-auth_reducer.js | test |-reducers | |-auth.test.js 测试脚本 mocha——编译器js:babel寄存器——需要babel polyfill——递归 认证减速器 const AUTH_USER = '

所以我想我创建了一个简单的测试来确认我为redux减速机设置的mocha/chai测试,但是由于我无法识别的原因,这个初始测试失败了。一切都是按照计划安排的。没有与es6相关的错误

文件结构

client
|-reducers
|    |-auth_reducer.js
|
test
|-reducers
|    |-auth.test.js
测试脚本
mocha——编译器js:babel寄存器——需要babel polyfill——递归

认证减速器

const AUTH_USER = 'AUTH_USER';
const INITIAL_STATE = { error: '', message: '', content: '', authenticated: false, user: null };

export default function (state = INITIAL_STATE, action) {
  switch (action.type) {
    case AUTH_USER:
      return { ...state, error: '', message: '', authenticated: true };
  }
  return state;
}
认证测试

import { expect } from 'chai';

import authReducer from '../../client/reducers/auth_reducer';

describe('auth_reducer', () => {

  it('handles AUTH_USER', () => {
    const initialState = { 
      error: '', 
      message: '', 
      content: '', 
      authenticated: false, 
      user: null 
    };
    const action = {
      type: 'AUTH_USER',
    };
    const nextState = authReducer(initialState, action);

    expect(nextState).to.equal({
      error: '', 
      message: '', 
      content: '', 
      authenticated: true, 
      user: null
    });
  });
});
错误

auth\u减速机
1) 处理身份验证用户
0通过(38ms)
1失败
1) 授权还原程序处理授权用户:
AssertionError:预期{Object(错误,消息,…)}等于{Object(错误,消息,…)}
+预期-实际
在上下文中。(test/reducers/auth.test.js:20:26)
npm错误!达尔文15.6.0
npm错误!argv“/usr/local/bin/node”“/usr/local/bin/npm”“运行”“测试”
npm错误!节点v6.7.0
npm错误!npm v3.10.9
npm错误!代码失效循环
npm错误!yars@0.0.1test:`mocha--compilers js:babel register--require babel polyfill--recursive`
npm错误!退出状态1
npm错误!
npm错误!失败yars@0.0.1测试脚本“mocha——编译器js:babel寄存器——需要babel polyfill——递归”。

使用
deep.equal
代替
equal

expect(nextState).to.deep.equal({
  error: '', 
  message: '', 
  content: '', 
  authenticated: true, 
  user: null
});
在比较对象时,会比较对象的引用。使用深度比较时,会比较属性和值

一个简单的例子:

const a={val1:1,val2:2};
常数b={val1:1,val2:2};
log('equality',a==b);

log('deep equality',a.val1==b.val1&&a.val2==b.val2)使用
deep.equal
代替
equal

expect(nextState).to.deep.equal({
  error: '', 
  message: '', 
  content: '', 
  authenticated: true, 
  user: null
});
在比较对象时,会比较对象的引用。使用深度比较时,会比较属性和值

一个简单的例子:

const a={val1:1,val2:2};
常数b={val1:1,val2:2};
log('equality',a==b);
log('deep equality',a.val1==b.val1&&a.val2==b.val2)我用一个简单的例子添加了“为什么”。我用一个简单的例子添加了“为什么”。