阅读更多

4顶
0踩

Web前端

原创新闻 MockMe:一个新的JavaScript mocking框架

2008-08-12 12:41 by 副主编 ouspec 评论(2) 有5232人浏览
Johannes Link是一个热爱Agile的小伙子,他对现存的JavaScript单元测试框架不100%满意,他解释了原因,比如他给出了一个例子:

testDoubleSpeaker: function() { with(this) {
    var actualMsg = null;
    var mockSay = function(msg) {
      actualMsg = msg;
    };
    Speaker.say = mockSay;
    DoubleSpeaker.say('oops');
    assertEqual('oopsoops', actualMsg);
  }}


这个例子能够运行,但是下面的方式是不是更好?
testDoubleSpeaker: function() { with(this) {
    mock(Speaker).andDo(function() {
        DoubleSpeaker.say('oops');
        verify(Speaker.say)('oopsoops');
    });
  }},



所以,他给出了一个新的JavaScript mocking框架:MockMe。主要功能是:

1。提供基本颗粒mocking的功能,如果可能,可以伪装一个简单测试功能,而不影响其他内容(比如对象,原型或者全局命名空间等)。

2。很多时候,spying(刺探)比mocking更好,因为前者更简单。spying指的不是在你的mock对象开始测试前,指定期望的特定反馈,而是当测试发生时或之后,你使用mock spy对象来刺探反馈结果。

下面是另外一个例子:

when(f)('in').thenReturn('out');
assertEqual('out', f('in'));
when(f)({name: 'hello'}).thenReturn('yeah');
assertEqual('yeah', f({name: 'hello'}));
when(f)(any()).thenReturn('yeah');

assertEqual('yeah', f(1));

verify(times(2), f)(1); //succeeds

useMockerFor(function(mocker)) {
    mocker.within(MyObject).mock('f1');
    when(MyObject.f1)().thenReturn(5);
    assertEqual(7, MyObject.f2());
} // Here everything you mocked will automatically be restored

assertEqual(3, MyObject.f2());


详细内容可以访问http://johanneslink.net/projects/mockme.html
来自: ajaxian.com
4
0
评论 共 2 条 请登录后发表评论
2 楼 ITeye管理员 2008-08-12 15:49
已经修改,谢谢。
1 楼 fangzhouxing 2008-08-12 15:25
http://www.javaeye.com/news/MockMe 链接错误!

发表评论

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

相关推荐

  • 用一个公用变量实现多循环sql结果的收集!!

    由代码实现以下sql语句:Set rs= Server.CreateObject("ADODB.Recordset")    sql="select zuzhi.kaishiw,zuzhi.jieshuw,zuzhi.jibie from zuzhi,guanli where guanli.zhanghao="& zh &" and zuzhi.jibie    rs.open sql,c

  • 二十八条改善 ASP 性能和外观的技巧

    二十八条改善 ASP 性能和外观的技巧 Len Cardinal,高级顾问,Microsoft Consulting Services George V. Reilly Microsoft IIS Performance Lead 改编自Nancy Cluts 的文章 开发人员技术工程师Microsoft Corporation 2000 年 4 月 摘要:本文介绍优化 ASP 应用程序和 V

  • 最大限度优化你的Asp性能

    google_ad_client = "pub-24305016

  • asp优化:提高ASP性能的最佳选择

    ASP开发人员为了在他们的设计项目中获得更好的性能和可扩展性而不断努力。幸运地是,有许多书籍和站点在这方面提供了很好的建议。但是这些建议的基础都是从ASP平台工作的结构上所得出的结论,对实际获得的性能的提高没有量的测量。由于这些建议需要更加复杂的编码过程并降低了编码的可读性,开发人员就只能在看不到实际运行效果的情况下,独自衡量为了提高他们ASP应用程序的性能是否值得付出这些代价。   本文分为两大

  • 浅谈如何增强ASP程序性能

    Session在繁忙站点上使用时有几个缺陷。繁忙的意思是:站点上每秒有上百的页面被请求,或者同时有上千的访问用户。这个技巧对于那些要求水平扩展强 的站点非常重要,也就是指这些站点:它们利用多个服务器完成数据装载或者处理大量容错。对于小型站点,比如内部网Intranet,Session是非常 值得提倡的。 再次重申,ASP自动地为每一个首次点击Web服务器的用户创建一个Session,每一个Session占有大约10KB的内存,生存期默认是20分钟。 使用Sessi

  • 22个提高ASP性能的技巧(1-12)(转)

    介绍 对于ASP程序来说,性能非常重要;必须在最初设计程序时就要考虑到性能,否则以后恐怕就要因为性能问题而重写代码。怎样才能使ASP程序性能达到最大呢?本文就将介绍一些提高ASP程序性能的技巧。 技巧1:将常用数据在Web服务器...

  • Dim objRs as new RecordSet和Dim objRs as RecordSet的比较

    敲实例4遇到问题的思考,多一个new大有学问。 在内存中分配空间的时间和实例化的时间不同: 对于Dim objRs as new RecordSet,当第一次使用objRs的时候,才在内存中分配空间和实例化。 对于Dim objRs as RecordSet,声明objRs为RecordSet类类型变量,和声明普通变量一样,此时已经在内存中分配存储空间了。当使用Set objRs=new...

  • 提高ASP性能的最佳选择

     ASP开发人员为了在他们的设计项目中获得更好的性能和可扩展性而不断努力。幸运地是,有许多书籍和站点在这方面提供了很好的建议。但是这些建议的基础都 是从ASP平台工作的结构上所得出的结论,对实际获得的性能的提高没有量的测量。由于这些建议需要更加复杂的编码过程并降低了编码的可读性,开发人员就只 能在看不到实际运行效果的情况下,独自衡量为了提高他们ASP应用程序的性能是否值得付出这些代价。   本

  • 什么才是提高ASP性能的最佳选择?(一)

       ASP开发人员为了在他们的设计项目中获得更好的性能和可扩展性而不断努力。幸运地是,有许多书籍和站点在这方面提供了很好的建议。但是这些建议的基础都是从ASP平台工作的结构上所得出的结论,对实际获得的性能的提高没有量的测量。由于这些建议需要更加复杂的编码过程并降低了编码的可读性,开发人员就只能在看不到实际运行效果的情况下,独自衡量为了提高他们ASP应用程序的性能是否值得付出这些代价。   本

  • 提升ASP网站的执行速度

    写ASP程序已经有6年了,也下载了不少ASP源码,看看别人怎么写,到现在也不敢说自己是个ASP的代码能手,我认为写一个程序,只要逻辑思维清晰,很简单的,但要写好一个程序就不简单了.这篇文章就想说一个事情.如何提升ASP代码的执行速度.希望对那些做网站的朋友有所帮助,写代码的人一定要养成好的习惯.第一点:可能基本上会写ASP代码的人都知道,打开记录集对象了,要关闭及连接(Connection

  • 如何增强ASP程序性能(1)

      性能是一个很重要的特征。你需要事先设计好性能指标,否则日后就要为此重新编写程序。就是说:要设想好怎样最佳化地执行ASP程序?  本文提出了一些优化ASP应用和VBScript的技巧,许多技巧和缺陷都经过了研讨。这里列出的建议已经在http://www.microsoft.com 和其他站点上进行了测试,都工作得非常好。本文假设你具备ASP开发的基本知识,包括VBScript或者JScript,

  • 全面优化ASP应用程序的性能(转载)

    ASP 本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境,而在ASP中最常用的脚本语言就是VBScript了。虽然ASP的脚本语言很简单,但是要想让一个ASP程序能够最优化的运行也不是一件简单的事情。   现在国内的网络带宽很有限,网络十分拥挤,如何使得自己的ASP应用程序能够快速的运行就成为了每一个ASP程序员的梦想了。那就跟随我来一同加速你的ASP程序

  • ASP性能优化28条守则

            性能是一个特征。您必须预先设计性能,否则您以后就得重写应用程序。就是说,有哪些好的策略可使 Active Server Pages (ASP) 应用程序性能达到最佳?   本文介绍了优化 ASP 应用程序和 Visual Basic® Scripting Edition (VBScript) 的技巧。本文讨论了许多陷阱。本文列出的建议已经在 http://www.microso...

  • 什么才是提高ASP性能的最佳选择(一)

    (作者:青苹果工作室编译 2000年11月10日 17:20)  ASP开发人员为了在他们的设计项目中获得更好的性能和可扩展性而不断努力。幸运地是,有许多书籍和站点在这方面提供了很好的建议。但是这些建议的基础都是从ASP平台工作的结构上所得出的结论,对实际获得的性能的提高没有量的测量。由于这些建议需要更加复杂的编码过程并降低了编码的可读性,开发人员就只能在看不到实际运行效果的情况下,独

  • java+sql server项目之科帮网计算机配件报价系统源代码.zip

    sql server+java项目之科帮网计算机配件报价系统源代码

  • 【java毕业设计】智慧社区老人健康监测门户.zip

    有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上

Global site tag (gtag.js) - Google Analytics