【问题标题】:What's the advantage of using Sinon.js over Jasmine's built in Spys?与 Jasmine 内置的 Spys 相比,使用 Sinon.js 有什么优势?
【发布时间】:2012-08-26 07:31:18
【问题描述】:

我正在拼凑一个 jsTestDriver/Jasmine 环境来测试我们的前端代码,并且我看到很多引用 Sinon.js 的独立(或插入式)间谍。有人能描述一下 Sinon.js 带来了什么 Jasmine 没有用于测试 UI 的东西吗?

【问题讨论】:

  • 我不明白为什么应该将其关闭为非建设性的。我已经大量使用 jasmine 一年多了,仍然想知道为什么人们添加 sinon.js。倾向于说 sinon 没有添加任何不存在的内容,但很想听听 sinon.js 用户的意见。
  • 问题的问题是,不会有具体的答案。你可能认为不需要 sinon.js,其他人可能认为它是自切片面包以来最好的东西。一个人可能认为一个特性是一种优势,而另一些人可能认为它被过度设计了。那么这个问题的正确答案是什么。
  • 这个问题的正确答案是理念和/或实现的差异,重点是这对 UI 测试的影响。一些主观性的空间,但不多。

标签: javascript bdd jasmine sinon js-test-driver


【解决方案1】:

* 将其作为答案发布,因为这不适合评论部分! *

FWIW,我们使用 SinonJS 创建了一个 FakeHTTP(LinearEPG) 服务器组件,用于实现承载 EPG(Linear TV Program Schedule)信息的真实服务器的 REST-API。

然后,我们以两种方式使用了这个 FakeHTTP-LinearEPG 服务器:

  1. 与显示 EPG 的 Web 应用一起用于测试导航等。
  2. 测试获取 EPG 以及 Jasmine UT Specs 的 Javascript 代码。

当然,我们可以使用 Jasmine-Spies 实现 FakeServer 功能,但它似乎有点复杂。另一方面,FakeServer 提供了一种优雅而快速的方式来模拟提供 REST 接口的服务器。

基于SinonJS的FakeServer在当时服务器本身还在开发中的时候被证明是非常有用的!

【讨论】:

    猜你喜欢
    • 2010-09-24
    • 2010-12-27
    • 2015-04-06
    • 2013-05-09
    • 2017-05-29
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多