问题标签 [sinon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用带有 nodeunit 的 sinon 模拟
我正在学习将 sinon 与nodeunit一起使用,专门用于模拟。推荐的方法是使用sinon-nodeunit。根据文档,应该可以通过每个测试函数mock
的参数方法使用模拟。test
但是,这似乎不起作用。如果我nodeunit
在包含以下内容的文件上运行 -</p>
——我明白了:
sinon
我已经sinon-nodeunit
通过npm install
.
javascript - SinonJS 假计时器不适用于 QUnit
我正在使用 SinonJS 和 QUnit 运行以下代码:
但是测试失败了,看起来 jQuery 使用的是真正的时钟而不是假的。
我正在使用 Chrome 12.0.742.122。
有任何想法吗?
谢谢
javascript - 如何在 Jasmine 单元测试中使用 Sinon 对 jQuery 动画进行假时间?
我有一个 1 秒的 jQuery.animate
操作,在页面加载后 5 秒启动。我在我的 Jasmine 单元测试代码中设置了一个 Sinon 计时器,并在 7 秒的滴答声后进行测试,以查看动画后的属性是否与它们应有的一样。
它不能正常工作,因此我在 Jasmine HTML 测试页面上放置了动画本身的一个实例,以便更好地了解发生了什么。
在 Firefox 和 Chrome 中,页面加载,动画函数被调用,单元测试立即失败,然后(也立即)动画可见。
在 IE、Opera 和 Safari 中,页面加载,动画函数被调用,单元测试立即失败,动画从不可见。
我希望的是以下(在所有浏览器中):
- 页面加载完毕,调用动画函数,动画瞬间完成,单元测试立即成功。
查看Sinon的文档,它的假计时器涵盖了以下过程:
setTimeout
, clearTimeout
, setInterval
, clearInterval
,Date
我不知道 jQuery 的动画是如何工作的,但我想它是使用 CSS 来过渡的,而 CSS 过渡并没有包含在 Sinon 中useFakeTimers
,所以我想这就是问题所在。但是,如果我对这个问题是正确的,我仍然需要一个解决方案。
或许我应该试试诗乃以外的东西?Jasminewaits()
在这个测试中表现完美,但对于像我这样没有耐心的人来说非常不切实际。
还有其他建议吗?请记住,我是 JS 单元测试的新手,所以模糊的答案会让我感到困惑,而不是帮助我。;o)
javascript - 如何使用 Sinon.JS 存根 google.maps 库?
我在这样的 Backbone 模型中使用 google.maps 库(coffeescript):
在我的测试中,每当我尝试实例化 aRoute
时,显然都会遇到问题。我怎样才能google
在我的测试中存根,这样它就不会导致这个问题?
mysql - 你如何在 Node.js 中模拟 MySQL(没有 ORM)?
我正在使用Node.js
felixge 的node-mysql
客户端。我没有使用 ORM。
我正在使用 Vows 进行测试,并希望能够模拟我的数据库,可能使用 Sinon。由于我本身并没有真正的 DAL(除了node-mysql
),所以我不确定如何去做。我的模型大多是带有很多吸气剂的简单 CRUD。
关于如何做到这一点的任何想法?
testing - Sinon JS“试图包装已经包装的ajax”
我在运行测试时收到了上述错误消息。下面是我的代码(我使用 Backbone JS 和 Jasmine 进行测试)。有谁知道为什么会这样?
javascript - Sinon 似乎没有监视事件处理程序回调
我正在使用 Jasmin、Simon 和 jasmin-simon 测试主干视图。
这是代码:
实际上,我所有的测试都通过了,只有一个。我想检查addMessage
每当我将项目添加到this.collection
.
如您所见addMessage
,确实被称为。(它记录到控制台并按this.messageView
应有的方式调用。我在监视addMessage
电话时错过了什么?
谢谢,维克多
javascript - Backbone.js 解析方法
我正在尝试使用sinon.js 和 jasmine.js对我的第一个骨干网应用程序进行单元测试。
在这个特定的测试用例中,我使用 sinon.js fakeServer 方法返回具有以下结构的虚拟响应。
因此,当我在下面的测试用例中实际调用 fetch 调用时,它会正确返回 3 个模型。在集合的 parse 方法中,我尝试删除根 'tasks' 键并仅返回对象数组,这在主干.js 文档中有所提及。但是当我这样做时,没有模型被添加到集合中,并且 collection.length 返回 0。
任务集合
你能告诉我我在这里做错了什么吗?