我正在关注Dan Abramov关于Redux的教程。 (https://egghead.io/lessons/javascript-redux-avoiding-object-mutations-with-object-assign-and-spread)
在第9课中,他介绍了测试并使用了expect
和.toEqual()
这是我的代码:
var expect = require('chai').expect;
var freeze = require('deep-freeze-node');
const testToggleTodo = () => {
const todoBefore = {
id: 0,
text: 'Learn Redux',
completed: false
};
const todoAfter = {
id: 0,
text: 'Learn Redux',
completed: true
};
expect(
toggleTodo(todoBefore)
).toEqual(todoAfter)
}
testToggleTodo();
console.log('All tests passed.')
我一直收到错误:
.../react_redux/src/a.js:24
).toEqual(todoAfter)
^
TypeError: expect(...).toEqual is not a function
我做错了什么?我正在逐字复制他的代码,但它会导致错误。
答案 0 :(得分:1)
不确定所提供的语法是否适用于chai
库。 (我假设他们正在使用其他一些断言库)
应使用expect
函数检查相等性的方式是
expect(toggleTodo(todoBefore)).to.equal(todoAfter);
参考文献:
答案 1 :(得分:0)
使用了错误的包
不应该使用柴,
导入期望来自'期待'
答案 2 :(得分:0)
在我的案例中,我完成了以下工作:
1. npm install --save expect install package from npm
2. import expect from 'expect'; import lib in file
3. expect(toggleTodo(stateBefore, action)).toEqual(stateAfter);
答案 3 :(得分:0)
对我来说,我的.toEqual
使用了错误的括号。确保它是expect(...).toEqual(..)
,而不是expect(...(...).toEqual(...))