TypeError:expect.createSpy不是函数

时间:2017-10-15 06:38:00

标签: node.js mocha

尝试使用spy的属性并最终出现此错误。

var spy = expect.createSpy();
spy();
expect(spy).toHaveBeenCalled();

错误:

TypeError: expect.createSpy is not a function

4 个答案:

答案 0 :(得分:3)

您正在运行哪个版本的expect?根据GitHub页面,expect已捐赠给Jest

如果你正在运行v21 +那么你将不得不使用Jest模拟函数jest.fn()而不是正常的expect.createSpy()

按照安装步骤@ here,然后使用以下代码,您应该没问题。

var spy = jest.fn();
spy();
expect(spy).toHaveBeenCalled();

答案 1 :(得分:2)

chai没有提供间谍,因为您需要像Sinon这样的库。

有一个名为sinon-chai的Chai插件创建了两者的有用组合:

const chai      = require('chai');
const sinon     = require('sinon');
const sinonChai = require('sinon-chai');
const expect    = chai.expect;

chai.use(sinonChai);

// Create the spy, using Sinon.
let spy = sinon.spy();

// Call the spy, so we can test it.
spy();

// Assert that the spy has been called.
expect(spy).to.have.been.called;

答案 2 :(得分:0)

您只需运行原始命令:

npm install expect@1.20.2 --save-dev

看起来图书馆正在改变所有者,如创作者在本推文中所述。事情仍在不断变化,所以最新版本似乎与开玩笑的文档一致。

答案 3 :(得分:0)

尝试将期望库版本降级为 @ 1.20.2 ,它应该可以工作