阅读更多

9顶
2踩

Web前端

原创新闻 JSpec,小巧的JavaScript测试框架

2010-01-08 15:42 by 副主编 just_cool 评论(1) 有3293人浏览

JSpec非常小,但却是一个很强大的测试框架。JSpec可以在利用其自定义的语法和预处理器进行操作,这是其他的JavaScript测试框架所不能的。它还包括许多有用的速记literal,一个直观/可读的语法,对核心prototype无污染,支持异步请求。

JSpec也可以运行多种方式,例如:通过terminal与Rhino的支持;通过browsers使用DOM或Console formatters; 通过使用Ruby JavaScript的服务器在后台运行浏览器,再汇报到terminal。

部分特性:

  • 支持异步
  • 支持Node.js
  • 支持Rhino
  • 支持Dom sandbox
  • 集成Ruby on Rails

 

示例:

describe 'ShoppingCart'
  before_each
    cart = new ShoppingCart
  end

  describe 'addProducts'
    it 'should add several products'
      cart.addProduct('cookie')
      cart.addProduct('icecream')
      cart.should.have 2, 'products'
    end
  end

  describe 'checkout'
    it 'should throw an error when checking out with no products'
      -{ cart.clear().checkout() }.should.throw_error EmptyCart
    end
  end
end

 Without Grammar

JSpec.describe('ShoppingCart', function(){
  before_each(function{
    cart = new ShoppingCart
  })

  describe('addProducts', function(){
    it ('should add several products', function(){
      cart.addProducts('cookie')
      cart.addProducts('icecream')
      expect(cart).to(have, 2, 'products')
    })
  })

  describe('checkout', function(){
    it ('should throw an error when checking out with no products', function(){
      expect(function(){ cart.clear().checkout() }).to(throw_error, EmptyCart)
    })
  })
})
 

点击查看详情:http://visionmedia.github.com/jspec/

来自: visionmedia
9
2
评论 共 1 条 请登录后发表评论
1 楼 54五味子 2010-01-14 21:30
呵呵 下来看看

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • java设计模式【之】Cglib动态代理【源码】【场景:帮爸爸买菜】

    * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法调用 * * 作用 * 1.保护被代理对象 * 2.增强被代理对象 * 3.完全替换被代理对象 ...

  • AATT: 智能文本处理框架的创新实践

    AATT: 智能文本处理框架的创新实践 项目地址:https://gitcode.com/NJ-zero/AATT AATT 是一个先进的人工智能文本处理框架,设计用于高效、准确地执行自然语言处理任务。该项目采用了深度学习技术和自然语言理解算法,为开发者和研究人员提供了一个易于使用的平台,以解决各种复杂的文本处理挑战。 技术分析 AATT 基于 TensorFlow 和 PyTorch 这样的深度...

  • txt文件解析简易框架

    构建数据表基类using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; public class BaseTable { protected string fileDirPath; protected string fileName; prote

  • 富文本处理

     富文本(Rich Text)或者叫做富文本格式,简单来说就是在文档中可以使用多种格式,比如字体颜色、图片和表格等等。它是与纯文本(Plain Text)相对而言的,比如Windows上的记事本就是纯文本编辑器,而Word就是富文本编辑器。 富文本文档结构 文本块 表格、列表与图片 查找功能 语法高亮与HTML 1 富文本文档结构 在Qt中提供了对富文本处理的支持。Qt中对富文本的处理...

  • 超大文本处理框架

    超大文本处理框架简介关于查找读取用法maven 配置用例开源地址 简介 这个一个针对超大文本文件的处理框架,适合那些超过100M的文本文件,如日志文件。该文件是按指定 容器字符数来处理文本内容,所以最大程度避免了操作这些大文本文件时的OOM问题。这种按指定容器字符 数读取到内容我统一位段。 关于查找读取 在读取文本的时候,会推断读取的文本的尾部有没有 要查找的字符串 的开头部分, 有就需要将 要查找的字符串 剩余的字符读取到该段文字里 为了尽可能保证读取不会因为读取策略导致OOM的问题,合适的段长度应该为

  • 文本处理(六)——Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai

    原文:https://www.jianshu.com/p/7f35a4b33f45Text-CNNText-CNN 文本分类TextCNN 是利用卷积神经网络对文本进行分类的算法,由 Yoon Kim 在 “Convolutional Neural Networks for Sentence Classification” 一文 (见参考[1]) 中提出. 是2014年的算法.          ...

  • cglib创建代理对象(1)

    cglib创建代理对象 还是从一个的小demo开始 例子 被代理的类 public class Bean{ public String sayHello(String name) { return "Bean.sayHello"; } private String privateSayHello(String name){ return ...

  • Cglib代理如何生成的及工作原理

    Cglib是一个高效的动态代理方式,并且在SpringBoot中...因为Cglib代理在继承目标对象时要复写所有函数,不可以复写final修饰的函数。在构建代理对象时通过通知规则来配置。这个通知规则包含了通知器和通知方法。}......

  • Java两种动态代理JDK动态代理和CGLIB动态代理

    代理模式是23种设计模式的一种,他是指一个对象A通过持有另一个对象B,可以具有B同样的行为的模式。为了对外开放协议,B往往实现了一个接口,A也会去实现接口。但是B是“真正”实现类,A则比较“虚”,他借用了B的...

  • 反射 静态代理 动态代理 (JDK代理和CGLib 代理 )

    反射 静态代理 动态代理 (JDK代理和CGLib 代理 )

  • JDK动态代理和CGLIB动态代理

    在SpringAOP中基于动态代理实现功能的增强,也就是动态的生成代理类,在代理类中织入增强的逻辑然后调用目标对象的方法。动态代理中用的比较多的两种:JDK动态代理、CGLIB动态代理。 JDK动态代理 使用JDK的java.lang...

  • DeepText:Facebook的文本解析引擎

    文本是Facebook上主要的交流形式。不论是浏览或是从垃圾信息中过滤出感兴趣的内容,理解各种不同的文本对于改进Facebook产品的用户体验都非常重要。基于这个想法,我们构建了DeepText。它是一个基于深度学习的文本解析引擎,能够按照接近人类的思维处理文本信息,处理的速度高达每秒钟上千篇文章,支持的语言高达20多种。DeepText利用了多个深度神经网络架构,包括卷积和复发性神经网络,能够在...

  • 【自然语言处理 文本纠错】10分钟了解下文本纠错框架pycorrector

    1、文本纠错包安装: pip install https://github.com/kpu/kenlm/archive/master.zip pip install pycorrector 注意:必须先安装kenlm包,再安装pycorrector,否则安装失败 2、中文文本纠错任务,常见错误类型包括: 谐音字词,如 配副眼睛-配副眼镜 混淆音字词,如 流浪织女-牛郎织女 字词顺序颠倒,如 伍迪艾伦-艾伦伍迪 字词补全,如 爱有天意-假如爱有天意 形似字错误,如 高梁-高粱 中文拼音全拼,如 xing

  • 文本分析的三种典型设计模式

    文本分析的三种典型设计模式许式伟2004-10-27事件驱动:Parse-Handler模型(如:xml之SAX模型)该模型主要有Parser和Handler两个组件。其原型大体如下:class xxxHandler{public:   // any event sended from Parser   ...};class xxxParser{public:   xxxxPa

  • Java高级文本处理(1)

    XML简介与解析 数据是主体 • 但是,单独的数据,它的含义很模糊 • 数据+含义,适用于传输数据,而不是显示数据(HTML) example: XML其实就是纯文本的表示 跨系统,平台,语言 核心就是意义+数据 W3C官网 取自W3C的一个书店示例 注意: – 需要转义字符,如“<”需要用:“&lt”;(无引号)代替。 – 注释:XML Schema(XSD,XML Schema Definition) – 定义 XML 文档的结构, DTD的继任者(DTD不做介绍了) – 支持数据类

  • Java动态代理、CGLIB动态代理

    本文涉及代理模式、静态代理、动态代理、CGLIB动态代理、JDK动态代理源码分析等内容。

  • CGLIB动态代理--实例/原理

    本文用示例介绍CGLIB动态代理的用法。

  • 探究Java spring中jdk代理和cglib代理!

    它通过创建一个实现了目标接口的代理类,并在代理类中实现代理逻辑。代理类在运行时动态生成,并在其中调用原始对象的方法JDK 动态代理通过类和接口来实现。代理对象是在运行时动态生成的。无法代理非公有类:JDK ...

  • 【spring】Cglib动态代理的使用

    cglib代理使用ASM对字节码进行操作生成新的类,从而实现对对象方法的增强。我们都知道Java中自带了一个动态代理,那我们为什么不直接使用Java动态代理,而要使用cglib呢?因为cglib相比于JDK动态代理更加强大,JDK...

Global site tag (gtag.js) - Google Analytics