`
hideto
  • 浏览: 2679486 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

每天一剂Rails良药之javascript_test

    博客分类:
  • Ruby
阅读更多
今天来看看javascript_test这个Rails plugin,它是对script.aculo.us库的单元测试框架的Rails风格测试封装
下载安装后,我们可以使用ruby script/generate javascript_test foo来对public/javascripts/foo.js生成测试用的html文件
在测试用的html文件里我们可以写对JavaScript的测试,语法见http://wiki.script.aculo.us/scriptaculous/show/UnitTesting,如:
testExample: function() { with(this) {
  var myElement = $('mydiv');
  assertEqual("DIV", myElement.tagName);
  assertEqual("DIV", myElement.tagName, "Hmm, not a DIV?");
}};

然后我们可以使用rake test:javascripts来自动运行所有JavaScript单元测试

我们通过javascript_test这个插件来看看怎样写generators
该插件的generator文件为javascript_test/generators/javascript_test/javascript_test_generator.rb
class JavascriptTestGenerator < Rails::Generator::NamedBase  

  def manifest
    record do |m|
      m.directory File.join("test","javascript")      
      m.template 'javascript_test.html', File.join('test/javascript', "#{name}_test.html")
    end
  end
end

我们要继承Rails::Generator::NamedBase基类,#{name}即可在字符串中得到运行script/generate javascript_test时的参数

以及怎样写rake
该插件的rake文件为javascript_test/tasks/javascript_test.rake
desc "Run tests for JavaScripts"
task 'test:javascripts' => :environment do
  JavaScriptTest::Runner.new do |t| 
    
    t.mount("/", RAILS_ROOT)
    t.mount("/test", RAILS_ROOT+'/test')
    t.mount('/test/javascript/assets', RAILS_ROOT+'/vendor/plugins/javascript_test/assets')
    
    Dir.glob('test/javascript/*_test.html').each do |js|
      t.run(File.basename(js,'.html').gsub(/_test/,''))
    end
    
    t.browser(:safari)
    t.browser(:firefox)
    t.browser(:ie)
    t.browser(:konqueror)
  end
end
分享到:
评论

相关推荐

    Rails101_by_rails4.0

    《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...

    rails_model_test_hello_world

    自述文件版本和设置$ ruby -vruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-darwin18]$ rails -... $ rails new rails_model_test_hello_world -T -m ~/rtfb_template.rb$ cd rails_model_test_hello_world$ rail

    inspinia admin - v2.5 Rails_Full_Version

    "inspinia admin - v2.5 Rails_Full_Version" 是一个基于Rails框架构建的后台管理系统的完整版本。这个系统采用流行的Inspinia Admin模板,提供了丰富的功能和自定义选项,旨在帮助开发者快速构建高效、现代且用户...

    rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板.zip

    rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...

    rails_friendly_urls_test:Rails Friendly URLs gem 示例项目

    `rails_friendly_urls_test`项目就是针对这一特性的实践应用。 1. **Friendly URLs简介** Friendly URLs是Rails框架中的一个特性,主要体现在路由(Routes)配置中。通过定义友好的路由规则,可以将传统的带有ID...

    rails_admin_acts_as_list:rails_admin插件以对记录进行排序

    介绍插件,用于对记录进行排序(使用 gem)安装要启用rails_admin_acts_as_list,请将以下内容添加到您的Gemfile : gem 'rails_admin_acts_as_list'gem 'rails_admin' 重要提示: rails_admin_acts_as_list之前必须...

    rails_semantic_logger, Rails 语义记录器用语义记录器替换 Rails 缺省记录器.zip

    rails_semantic_logger, Rails 语义记录器用语义记录器替换 Rails 缺省记录器 Rails 语义记录器 语义记录器用语义记录器替代 Rails 缺省记录器。http://github.com/rocketjob/rails_semantic_logger文档有关完整文档...

    rails open_flash_chart

    "Rails Open Flash Chart" 是一个基于Ruby on Rails框架的库,用于在Web应用程序中生成交互式的Flash图表。这个库允许开发者轻松地创建各种统计图表,如折线图、柱状图、饼图等,以便更好地可视化数据。由于Flash在...

    Api-rails5_api_tutorial.zip

    Api-rails5_api_tutorial.zip,了解如何在michael hartl的rails 5教程上构建一个现代api立即在rails应用程序中构建一个api!(Rails 5版本),一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web...

    rails3 和 thinking_sphinx安装

    Thinking Sphinx 是一个为 Rails 应用程序提供全文搜索功能的插件,它将数据库中的数据与 Sphinx 搜索引擎紧密结合,提供高效且高度定制化的搜索体验。 在 Rails3 中集成 Thinking Sphinx,首先你需要确保你的系统...

    Rails_test_app_1

    标题 "Rails_test_app_1" 暗示我们正在处理一个基于 Ruby on Rails 的测试应用程序。Ruby on Rails 是一个流行的开源 web 开发框架,它基于 Model-View-Controller (MVC) 设计模式,用于构建高效、优雅的 web 应用...

    RestFul_Rails_Dev_pdf_v_0.1.zip

    本资料“RestFul_Rails_Dev_pdf_v_0.1.zip”包含了《RESTful Rails Development》的翻译版,将深入探讨如何在Rails中实现RESTful的设计模式。 首先,RESTful设计的核心概念是资源(Resources)。在Rails中,资源...

    使用Rails4Devise和Grape验证API_JavaScript_CSS_下载.zip

    在压缩包中的"authenticating_api_rails_devise-master"可能是一个Git仓库的名称,表明这个项目是用Git版本控制系统管理的,"master"分支通常代表开发的主要分支。这个目录可能包含以下文件和目录结构: - Gemfile...

    rails_6_test_app_with_1_ws_channel

    自述文件该自述文件通常会记录启动和... 您可能要讲的内容: Ruby版本系统依赖配置数据库创建数据库初始化如何运行测试套件服务(作业队列,缓存服务器,搜索引擎等) 部署说明...rails_6_test_app_with_1_ws_channel

    agile_web_development_with_rails_3rd_edition.9994652073.pdf

    《敏捷Web开发与Rails》第三版是一本深入探讨Ruby on Rails框架在敏捷软件开发方法论下的应用指南。本书由多位知名作者共同编写,包括Sam Ruby、Dave Thomas、David Heinemeier Hansson等,他们都是在Ruby社区内享有...

    Rails_3_Cheat_Sheets.pdf

    Rails_3_Cheat_Sheets.pdf

    Rails3+GithubOAuth2+设计示例应用程序_Ruby_JavaScript_下.zip

    在描述中提到的"Ruby_JavaScript_下"表明这个示例应用可能结合了Ruby和JavaScript两种语言。Ruby用于服务器端逻辑,而JavaScript通常用于客户端的交互和动态功能,尤其是当使用像Rails这样的现代Web框架时,它会配合...

    CRA+RailsAPI+设计登录+ActiveAdmin样板_Ruby_JavaScript_下.zip

    标题 "CRA+RailsAPI+设计登录+ActiveAdmin样板_Ruby_JavaScript_下" 提供了关于项目的核心技术栈,其中包括Create React App (CRA)、Ruby on Rails API 和 ActiveAdmin,以及登录功能的设计。这是一份使用前端React...

    rails_best_practices:Rails项目的代码度量工具

    rails_best_practices ...默认情况下,rails_best_practices将解析vendor , spec , test和features目录中的代码。 排除目录 要排除目录,只需使用-e或--exclude调用: rails_best_practices -e "db/migrate

    Rails 4 Test Prescriptions

    总之,《Rails 4 Test Prescriptions》是一本不可多得的好书,它不仅仅是一本关于测试技巧的手册,更像是一位导师,引导着开发者们走向更为成熟和系统化的测试之路。通过阅读本书,无论是对于个人技能的提升还是整个...

Global site tag (gtag.js) - Google Analytics