尝试使用spy的属性并最终出现此错误。
var spy = expect.createSpy();
spy();
expect(spy).toHaveBeenCalled();
错误:
TypeError: expect.createSpy is not a function
答案 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 ,它应该可以工作