TypeError:expect(...)。toEqual不是函数

时间:2017-04-20 20:15:45

标签: javascript

我正在关注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

我做错了什么?我正在逐字复制他的代码,但它会导致错误。

4 个答案:

答案 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(...))