首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用calledOnce时无效的柴属性

调用calledOnce时无效的柴属性
EN

Stack Overflow用户
提问于 2017-07-25 22:07:10
回答 1查看 23.3K关注 0票数 18

我在用JavaScript编写Sinon和Chai测试时遇到了问题。我试着检查一个函数是否在间谍上被调用,然后得到

“错误:无效的柴属性: calledOnce”

我在具有相同测试依赖关系的另一个项目中做同样的事情,没有任何问题。

代码语言:javascript
复制
var udpSocketStub = this.sandbox.spy(udpSocket, 'send');
expect(udpSocketStub).calledOnce; // SHOULD FAIL


"dependencies": {
  "body-parser": "~1.17.1",
  "bootstrap": "^4.0.0-alpha.6",
  "chai": "^4.1.0",
  "co-mocha": "^1.2.0",
  "cookie-parser": "~1.4.3",
  "debug": "~2.6.3",
  "express": "~4.15.2",
  "jquery": "^3.2.1",
  "mocha": "^3.4.2",
  "morgan": "~1.8.1",
  "node-compass": "0.2.3",
  "pug": "^2.0.0-rc.1",
  "serve-favicon": "~2.4.2",
  "sinon": "^2.3.8",
  "sinon-chai": "^2.12.0"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-20 04:59:51

您只是缺少了sinon-chai包,这在chai中添加了类似sinon的断言。

代码语言:javascript
复制
npm install --save sinon-chai

初始化:

代码语言:javascript
复制
var chai = require('chai');
var sinon = require('sinon');
chai.use(require('sinon-chai'));

如果您想知道,使用存根或原始函数都是有效的:

代码语言:javascript
复制
var expect = chai.expect;

var udpSocketStub = this.sandbox.spy(udpSocket, 'send');

// Make a call
updSocket.send({..});

// Both should pass
expect(udpSocketStub).calledOnce;
expect(udpSocket.send).calledOnce;

// Identical, but more readable
expect(udpSocketStub).to.have.been.calledOnce;
expect(udpSocket.send).to.have.been.calledOnce;
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45314317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档