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

Rails每周闲碎(十): Tools

阅读更多

1. will_paginate

 

   will_paginate 是一个非常简单易用的rails插件,它提供了“分页”的查询功能和一些页面模板。

 

   在查询功能上,这个插件的本质是在rails模型对象的查询方法上增加了一些条件。比如paginate方法可以看成是find方法的基础上增加了:page和:per_page两个参数,来告诉查询页数和每页的记录数量。

 

   组装成的sql语句大概如下:

 

SELECT TOP 50 FROM (SELECT ROW_NUMBER() OVER ( ORDER BY id ) AS row_num) AS t 
WHERE row_num > 1000

#SQL Server版本
#其中的50是:per_page, 1000是由:page计算而得。

 

   而在页面方面,will_paginate也提供了一些模板和view的helper方法,使页面的实现非常简单:

 

 

<%= will_paginate @posts %>

 

2. ActionMailer

 

    ActionMailer 让你通过一个model和view就能建立起email。

 

    需要注意的几点:

 

    a. 在view中的url:用url_for等方法生成url,需要指定host。Mailer的view跟一般的view不同,不是通过请求生成的,所以无法从request中获取host。

 

    b. content_type:我们可以指定邮件的content type,如果没有指定,则其由view的文件名决定。比如signup_notification.text.html.erb说明邮件的content type是“text/html”。

 

    c. smtp server: smtp配置的设定,ActionMailer::Base. smtp_settings。

 

 

 

3. rake task: environment

 

   Rake task是独立于环境而执行的,除非这个task有个前置task是:environment。

 

task :load_data => :environment do
   include DataLoader
   load_data
end 

 

    在上面这个例子中,我们需要include DataLoader这个module(定义在lib目录下),并调用它的load_data方法。如果没有environment这个前置task,那 么include就会失败,因为当load_data task执行时,并没有应用环境,那么就不会知道load path等。

 

 

 

4. jmeter

 

    jmeter可以设置代理,让浏览器的请求都通过jmeter,以此来录制浏览器的request。结合selenium,简直完美。

 

1
0
分享到:
评论
2 楼 andyhu1007 2009-07-19  
liuming 写道
我对Cucumber的看法是,它正是尝试在业务和技术之间找到一个平衡点,或者说是折中方案。

我们最近也上了Cucumber尝试把业务、测试和开发融合起来,也正在探索Cucumber的做法到底是两边讨好还是不伦不类。目前我的接到的信息是,业务人员还是比较接受Cucumber。反而开发人员有时还会像您说的那样,由于Cucumber维护起来需要费些神,还会懒一些。有限制是肯定的,但起码业务人员和技术人员双方做一些努力向对方靠近一些的话,我们就会省了一个中间人或者中间步骤,把长篇大论的自然语言需求翻译成逻辑。另一方面是类似于Cucumber这类BDD方案可以引导开发从外到内的进行,也就是说从客户(或者说业务)的角度去看一个系统,这样我们就省了很多工作去假设和处理一些可能十年也不会遇到的逻辑。

还有一个方面是不知道楼主有没有用其它的辅助工具来帮助完成Cucumber的动作执行?我们在应用中所用的Watir组件能够实际地调用浏览器来执行测试。测试人员虽然在写测试是头痛,但写好之后也挺爽的,每次都看着它动就行了。


我们用的是selenium。

你说的有道理。我们项目中之所以客户或者业务人员不会看cucumber用例,主要原因是客户验收条款的管理是在mingle上面。而cucumber和验收条款之间并没有同步,还是要靠业务人员和开发人员之间的沟通。

要有效利用cucumber,必须得将客户验收条款和测试用例紧密结合起来。最理想的情况是能做的:

1. 由客户或者业务人员写就定义成cucumber的测试用例样式的客户验收条款。

2. 由开发人员或者测试人员实现这些测试。

3. 实现客户验收条款和测试用例的同步。

这样,客户改动的就是测试用例;而客户验收条款一改,测试就会警报。

但本质上,这个东西我觉得还是挺复杂的。它实质上还是编程语言,并没有让业务人员或者客户可以脱离开发人员进行独立操作的可能性。既然如此,不如让客户或者业务人员学习一下method chain怎么写,不是差不多么。
1 楼 liuming 2009-07-19  
我对Cucumber的看法是,它正是尝试在业务和技术之间找到一个平衡点,或者说是折中方案。

我们最近也上了Cucumber尝试把业务、测试和开发融合起来,也正在探索Cucumber的做法到底是两边讨好还是不伦不类。目前我的接到的信息是,业务人员还是比较接受Cucumber。反而开发人员有时还会像您说的那样,由于Cucumber维护起来需要费些神,还会懒一些。有限制是肯定的,但起码业务人员和技术人员双方做一些努力向对方靠近一些的话,我们就会省了一个中间人或者中间步骤,把长篇大论的自然语言需求翻译成逻辑。另一方面是类似于Cucumber这类BDD方案可以引导开发从外到内的进行,也就是说从客户(或者说业务)的角度去看一个系统,这样我们就省了很多工作去假设和处理一些可能十年也不会遇到的逻辑。

还有一个方面是不知道楼主有没有用其它的辅助工具来帮助完成Cucumber的动作执行?我们在应用中所用的Watir组件能够实际地调用浏览器来执行测试。测试人员虽然在写测试是头痛,但写好之后也挺爽的,每次都看着它动就行了。

相关推荐

    Rails的精简版本Rails::API.zip

    Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...

    Rails上的API:使用Rails构建REST APIAPIs on Rails: Building REST APIs with Rails

    在本篇内容中,我们将深入探讨如何利用Ruby on Rails(简称Rails)这一强大的Web应用程序框架来构建可伸缩且易于维护的RESTful API。Rails以其简洁优雅的语法、高效的开发速度以及良好的社区支持而闻名,这使得它...

    Ruby on Rails入门例子

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本篇将通过一个入门实例,深入探讨Rails的基本概念和核心...

    rails-ansible-presentation:有关Rails + Ansible的Deckset演示

    [适合] Rails :red_heart: Ansible [适合] Rails :red_heart: Ansible (有一点帮助) Rails部署 简单吧? 将应用程序放在服务器上。 捆绑宝石。 应用迁移。 重新启动服务。 Easy Rails部署 git push master ...

    rails-basic-template:基本 Rails 模板

    Rails 基本模板参考: : Ruby on Rails Gemfile:定义应用程序正在使用的库的文件bundle install:基于Gemfile,安装所有库每次修改 Gemfile 时都应该运行bundle install gem 是 Ruby 的库RubyGems.org 是一个查找和...

    rails_console_toolkit:可配置的 Rails 控制台助手

    RailsConsole 工具包 :wrench: :toolbox: 可配置的 Rails 控制台助手更快地查找记录,添加自定义助手,将您的控制台寿命提高 100%。安装将此行添加到应用程序的 Gemfile 中: gem 'rails_console_toolkit' 然后生成...

    webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成.zip

    webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。 有关详细信息,请参阅 #90. web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中...

    rails_email_preview:在Rails中预览和编辑应用程序邮件模板

    Rails电子邮件预览 使用此Rails引擎在浏览器中预览电子邮件。 与Rails 4.2+兼容。 一封电子邮件评论: 所有电子邮件预览的列表: REP带有两个主题:一个简单的独立主题和一个使用的主题。安装加 到Gemfile: gem '...

    rails-dom-testing:从ActionView中提取DomAssertions和SelectorAssertions

    Rails :: Dom :: Testing 这个gem负责比较HTML DOM并断言Rails应用程序中存在DOM元素。 assert_dom_equal通过assert_dom_equal和assert_dom_not_equal进行比较。 元素通过assert_dom , assert_dom_encoded , ...

    Ruby on Rails入门经典代码

    Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习...

    rails-controller-testing:将`assigns`和`assert_template`带回到您的Rails测试中

    Rails :: Controller :: Testing 这个gem将assigns给控制器测试的内容以及assert_template带回assigns控制器和集成测试的内容。 这些方法已中。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails-...

    rails_stack-cookbook:使用 nginx、unicorn、redis 等设置 Rails 环境的 Chef 食谱

    rails_stack 食谱 TODO:在此处输入食谱说明。 例如,这本食谱使您最喜欢的早餐三明治。 要求 TODO:列出您的食谱要求。 确保包含本说明书对平台、库、其他说明书、软件包、操作系统等的任何要求。 例如 包裹 ...

    rails-cache-extended:帮助程序和日志记录添加到 Rails 缓存

    Rails::Cache::Extended 这允许为记录集合生成自动过期的缓存键 安装 将此行添加到应用程序的 Gemfile 中: gem 'rails-cache-extended' 然后执行: $ bundle 或者自己安装: $ gem install rails-cache-...

    vite_rails:Rails中的:high_voltage:Vite.js,为您JavaScript体验带来欢乐

    允许您使用为Rails应用程序的前端供电。 是将前端工具像Ruby一样进行编程,纯属喜悦! :smiling_face_with_heart-eyes: 或在运行的检查。 产品特点 :high_voltage: :light_bulb: 即时服务器启动 :high_voltage: ...

    atom-rails-db-scheme:Rails数据库模式的Autocomplete +提供程序

    Rails数据库方案 Rails数据库模式的Autocomplete +提供程序。 特征 自动完成活动记录 根据当前上下文打开模式文件 设定值 将Rails语法设置为默认语法。 " * " : core : customFileTypes : " source.ruby.rails...

    rails-html-sanitizer

    如果您在非Rails应用程序中需要类似的功能,请考虑直接使用(这是处理内幕消毒的原因)。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails-html-sanitizer' 然后执行: $ bundle 或将其自己安装为: $...

    react_rails_flux_screencast:react-rails + Flux(Alt.js)教程

    带有Flux(Alt)的React Rails截屏博客文章: : YouTube视频: : 这是截屏视频的代码,显示了如何将和集成到您的rails应用程序中。 我只使用不带npm的链轮,因此设置非常简单。 Alt( )React Rails( )Lodash( ...

    rails-docker-compose:Ruby on Rails的Docker开发环境

    使用Docker开发Ruby on Rails的配置文件 docker-compose up 利润! 你得到什么 一线开发环境的设置和启动: docker-compose up 。 一个易于安装的依赖关系可在新计算机上进行编码:Docker。 (与使用Vagrant时的两...

    rails-developer-scanning:针对Rails开发人员的自动面试问题

    标题 "rails-developer-scanning" 指向的是一个针对Rails开发者设计的自动化面试工具,旨在帮助面试官或招聘者快速有效地评估应聘者的Rails技能。这个工具名为 "jyaasa_interviewer",通过RubyGem安装,使得面试过程...

    rails_emoji_picker:将表情符号添加到您的应用

    Rails表情符号选择器 表情符号选择器与Rails应用程序的简单集成。 预习 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails_emoji_picker' 用法 运行命令 rails g rails_emoji_picker:install 它将表情符号...

Global site tag (gtag.js) - Google Analytics