Why RSpec?
Clear, concise and readable
Gems
.rspec
.rspec-core
.rspec-expectations
.rspec-mocks
.rspec-rails
Basics
Contexts
Describing methods
Running
rspec spec/
Formatters
echo --colort > .rspec
测试运行时附加参数
--colour 为测试输出加颜色
--format o 列出测试时间
--format html:test.html 输出测试文档到test.html
--diff 如测试失败,以diff模式查看期望结果和所得结果的不同
Documentation
rspec -f doc spec/
rspec -f Fuubar -f html -o specs.html spec/
Pending
Filtering by tag
Filtering by tag value
Setup and teardown
Expectations
Built-in matchers
Mocks and stubs
详情参考:
http://kerryb.github.com/iprug-rspec-presentation
rails 测试
rspec替换rails原有的Test:Unit
rails g rspec:install
.create .rspec
.create spec
.create spec/spec_helper.rb (该文件会在每个spec执行时被调用,设置了测试变量,并包含项目级别的RSpec配置项目,加载引用文件等等)
run: rake spec
run: rake spec:model
run: time rake spec:model
factory girl
gem 'factory gril', :git => 'git://github.com/thoughtbot/factory_girl.git', :branch => 'rails3'
add: spec/spec_helper.rb require 'factory_girl'
mkdir spec/factories
cucumber-Rails
It contains 2 generators - one for bootstrapping your Rails app for Cucumber, and a second one for generating features.
Installation
gem 'cucumber-rails'
gem 'capybara'
gem 'database_cleaner'
bootstrap your rails app
rails g cucumber:install --help
rails g cucumber:install
generating a cucumber feature
rails g cucumber:feature post title:string body:text published:boolean
rails g scaffold post title:string body:text published:boolean
rake db:migrate
rake cucumber
查看cucumber语言支持
cucumber --i18n help
cucumber --i18n zh-CN
中文写cucumber可以参考:
https://github.com/aslakhellesoy/cucumber/tree/master/examples/i18n/zh-CN
辅助工具:
会自动监视你的代码的改动,自动运行测试,所以你只要开一个窗口就好
autotest
run: autotest
或
watchr
需要自己手工写.watchr 或 watchr.rb文件
run: watch .watchr 或 watchr.rb
spork
让spec运行快起来
webrat or capybara
模拟浏览器
可以参考rails模板:
https://github.com/oldumy/rails3-app-template
测试相关:
自动生成测试文档
通过附加参数 --format specdoc 每次测试时在终端输出测试文档
spec spec/models/blog_spec.rb --format specdoc
也可以使用rake spec:doc在终端生成全部测试代码的文档
也可以使用--format html将测试文档输出到指定html文件
spec spec/models/blog_spec.rb --format html:test.html
生成覆盖率
利用rcov生成代码覆盖率
rake spec:rcov
会生成html格式的代码覆盖率文档
通过配置spec/rcov.opts来过滤其他代码覆盖率的干扰
--exclude "spec/*, gems/*, app/controllers/*, app/helpers/*, lib/*"
ps:
http://blog.adsdevshop.com/2010/06/06/tdd-on-the-bleeding-edge-with-ruby193-rails3-rspec-cucumber-autotest-and-factory-girl
http://mikbe.tk/2011/02/10/blazingly-fast-tests/
http://www.claytonlz.com/index.php/2010/03/zero-to-tested-with-cucumber-and-factory-girl/
http://www.iteye.com/topic/417899
http://www.anthonyeden.com/2010/11/testing-rest-apis-with-cucumber-and-rack-test/
guard
yajl
acts as api
lambda
acts_as_api
分享到:
相关推荐
单元测试和功能测试是Rails测试策略的两个重要组成部分,它们共同确保了应用程序的稳定性和可靠性。通过深入理解这两种测试的区别和应用场景,开发者可以更有效地编写和维护测试代码,提高代码质量和开发效率。 通过...
此外,你还将接触到Rails的测试驱动开发(TDD)理念,学习如何编写测试用例,确保代码的质量和稳定性。 随着学习的深入,你将探索更高级的主题,如AJAX集成、Caching技术以提升应用性能,以及如何利用gem(Ruby的库...
3. **RSpec配置**:编辑`spec_helper.rb`来配置RSpec的行为和偏好,例如指定默认的测试环境、启用或禁用特定特性等。 4. **生成器**:使用`rails generate rspec:install`命令来初始化RSpec,并创建必要的目录结构和...
6. **测试驱动开发(TDD)**:Rails强调TDD,书中介绍了Rspec、Cucumber等测试工具的使用,以及如何编写单元测试和集成测试。 7. **RESTful设计**:Rails鼓励使用RESTful风格来设计Web服务,书中讲解了如何实现CRUD...
5. **协作与演示**:在团队中,你可以分享API Taster的链接,让其他成员也能轻松测试和理解API,这对于协作开发非常有用。 在使用API Taster之前,确保你的Rails应用已经配置好并运行。然后,将api_taster-master...
### Ruby on Rails 3 教程知识点解析 #### 标题与描述中的核心知识点 - **Ruby on Rails 3**:一种流行的Web开发框架,基于Ruby语言。 - **经典教材**:表明本书是学习Ruby on Rails 3的一个权威且广受好评的资源...
2. "Rails3 api.chm":这是Rails 3的主要API文档,它应该包含了关于控制器、模型、视图、路由、数据库交互、辅助方法、插件、测试等所有关键部分的详细信息。开发者可以通过搜索、索引等功能快速查找所需的信息。 ...
Ruby on Rails,简称Rails,是由David Heinemeier Hansson基于Ruby语言开发的一个开源Web应用程序框架。...随着版本的迭代,Rails 4和5引入了更多优化和改进,但Rails 3的基础依然坚固,是理解现代Web开发的基石。
Ruby on Rails 3 是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(Model-...提供的文档如"Ruby192和Rails3.0.3的新征程.doc"和"rails3入门教程.pdf"等,将有助于深入理解这一框架及其在实际项目中的应用。
3. **构建高效测试套件**:书中不仅提供了一般性的指导原则,还包含了大量具体的案例研究,展示了如何为Rails应用程序创建既有效又高效的测试套件。这包括但不限于如何组织测试代码、如何利用RSpec特性来简化测试...
- 理解Ruby on Rails的核心理念和设计模式。 - 掌握使用Rails 3框架进行Web开发的基本技能。 - 能够独立构建功能完备的Web应用程序。 - 学会如何部署和维护Rails应用。 - 对Rails 3中的高级特性和最佳实践有所了解。...
通过这种方式,Cucumber-Rails帮助团队确保代码按照预期运行,同时提供了一种非技术人员也能理解的测试文档。 在`support`目录下,开发者可以放置一些辅助文件,例如World类(用于扩展Cucumber的上下文)、Hooks...
本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是学习Ruby on Rails的理想选择。 ### 重要知识点概览 #### 1. Introducing Ruby on Rails(介绍Ruby on Rails) 这一章节...
这个Rails项目提供了学习和研究Web开发的机会,特别是对于Ruby on Rails新手,可以通过阅读和理解源代码来提升技能,了解实际应用中Rails的用法。同时,对于有经验的开发者,这个项目也可以作为一个起点,进行二次...
标签 "工具" 可能意味着讨论到了与Rails开发相关的工具,如集成开发环境(IDEs)、包管理器(如Bundler)、测试框架(如RSpec和Capybara)、调试工具等,这些工具能提升开发效率和代码质量。 压缩包子文件的文件...
考虑到Rails社区非常活跃,许多新特性都是在旧特性的基础上改进的,因此,了解Rails 3对于理解后续版本的变迁会很有帮助。 Rails框架以其MVC(模型-视图-控制器)架构闻名,这个架构帮助开发者组织代码,使应用的...
Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...
`Go-testfixtures` 是一个专门针对数据库应用的测试辅助工具,它借鉴了Rails框架中的测试装置(Test Fixtures)概念,帮助开发者更有效地进行数据库相关的单元测试和集成测试。 测试装置在测试领域通常指的是在测试...