rails 3 使用 cucumber 和rspec 進行 測試
rails3使用cucumber和rspec进行测试
group :development, :test do
gem 'cucumber', "~> 0.10.2"
gem 'rspec', "~> 2.4"
gem 'rspec-rails', '~> 2.5'
gem 'cucumber-rails', '~> 0.4.1'
gem 'capybara', '~> 0.4.1.2'
gem 'database_cleaner', '~> 0.6.6'
end
depot$rails generate rspec:install
depot$rails generate cucumber:install
bash
rails blog
sudo rake gems:install RAILS_ENV=test
script/generate cucumber
cucumber features -n
script/generate rspec_model article title:string content:text
rake db:migrate
rake db:test:clone
script/generate rspec_controller articles index
Cucumber
In order to make a blog
As an author
I want to create and manage articles
Scenario: Articles List
Given I have articles titled Pizza, Breadsticks
When I go to the list of articles
Then I should see "Pizza"
And I should see "Breadsticks"
Scenario: Create Valid Article
Given I have no articles
And I am on the list of articles
When I follow "New Article"
And I fill in "Title" with "Spuds"
And I fill in "Content" with "Delicious potato wedges!"
And I press "Create"
Then I should see "New article created."
And I should see "Spuds"
And I should see "Delicious potato wedges!"
And I should have 1 article
config/environments/test.rb
config.gem "rspec-rails", :lib => false, :version => ">=1.2.2"
config.gem "webrat", :lib => false, :version => ">=0.4.3"
config.gem "cucumber", :lib => false, :version => ">=0.2.2"
features/step_definitions/article_steps.rb
titles.split(', ').each do |title|
Article.create!(:title => title)
end
end
Given /^I have no articles$/ do
Article.delete_all
end
Then /^I should have ([0-9]+) articles?$/ do |count|
Article.count.should == count.to_i
end
articles_controller.rb
@articles = Article.all
end
def new
@article = Article.new
end
def create
@article = Article.create!(params[:article])
flash[:notice] = "New article created."
redirect_to articles_path
end
features/support/paths.rb
case page_name
when /the homepage/
root_path
when /the list of articles/
articles_path
# Add more page name => path mappings here
else
raise "Can't find mapping from \"#{page_name}\" to a path."
end
end
index.html.erb
<% for article in @articles %>
<p><%=h article.title %></p>
<p><%=h article.content %></p>
<% end %>
<p><%= link_to "New Article", new_article_path %></p>
http://www.sevenmike.com/2011/06/20/rails3%E4%BD%BF%E7%94%A8cucumber%E5%92%8Crspec%E8%BF%9B%E8%A1%8C%E6%B5%8B%E8%AF%95/
摘自:
rails 3 使用 cucumber 和rspec 進行 測試相关推荐
- matlab fir工具箱,用MATLAB信號處理工具箱進行FIR濾波器設計的三種方法
摘 要 介紹了利用MATLAB信號處理工具箱進行FIR濾波器設計的三種方法:程序設計法.FDATool設計法和SPTool設計法,給出了詳細的設計步驟,並將設計的濾波器應用到一個混和正弦波信號,以驗 ...
- 利用BADI ME_PROCESS_PO_CUST進行PO check
BADI ME_PROCESS_PO_CUST當中有一個method CHECK可以進行整個PO的檢查. 要注意的是parameter只有IM_HEADER,並且是object形態. 以下是取得內容的 ...
- python使用opencv_教你快速使用OpenCV/Python/dlib進行眨眼檢測識別!
摘要: 影象識別的新思路:眼睛縱橫比,看看大牛如果用這種思路玩轉識別眨眼動作! 今天我們來使用面部標誌和OpenCV 檢測和計算視訊流中的眨眼次數.為了構建我們的眨眼檢測器,我們將計算一個稱為眼睛縱橫 ...
- python rs232_使用Python進行RS-232通信返回垃圾信息
我最近試圖通過RS-232連接控制OceanOptics HR4000光譜儀.我已經使用串行控制檯Termite測試了串行命令(這裏提供:http://www.oceanoptics.com/tech ...
- airflow 進行後端大數據中ETL處理(草稿)
情境說明: 公司接了外部的數據源,要把資料同步到gcp雲端來,資料表很多 ,我們使用了多種方式把資料寫入到我們公司位於gcp上的bigquery 資料表 問題 資料表很多樣,不同的資料表有不同的ETL ...
- [心得] 如何利用liquibase進行資料庫版本控制 - 實際練習
透過上一篇的基本觀念介紹,希望大家應該有一點點感覺了! 這篇我們就來做個簡單的版本演練,加深印象吧! 我使用的環境如下 System : Windows 7 Database : SQL Server ...
- 使用Arrays sort 方法進行排序
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! impo ...
- html中md5如何使用方法,html中使用js進行登錄md5加密提交並重定向新頁面
在web開發中有時需要將用戶的一些信息在客戶端加密后進行提交,然后在web后端進行驗證,可以提高頁面傳輸過程中的安全性.本例實現一個簡單的加密登錄demo,例子僅僅為了演示使用,實際使用時可以根據實際 ...
- mysql+分表+1168,MySQL使用MERGE進行分表實現
使用MERGE進行分表: 發現一個MERGE表一直出現Unable to open underlying table which is differently defined or of non-My ...
最新文章
- numpy维度交换_numpy之转置(transpose)和轴对换
- 细节无处不在!东莞网络推广分享哪些操作会影响网站优化效果?
- 20175221 MyCP(课下作业,必做)
- hiveql笔记(一)
- 动画都要用计算机图形学吗,计算机图形学在电影和动画中的应用.pdf
- java oracle临时表,JdbcTemplate操作oracle的临时表
- session-cookie 和token登录验证
- 提交显示成功但是没有看到文件_如何向RTThread提交一个BSP?
- 用 Java 写一个植物大战僵尸简易版
- CentOS 系列安装 Docker
- 计算机的精度论文,计算机辅助机械零件精度设计毕业论文
- mysql5.7 之 sql_mode=only_full_group_by问题
- 凑零钱动态规划java_动态规划巧解凑零钱问题 | 创作者训练营
- webpack 了解
- 利用客户端cookie保存用户信息
- Collections 常用方法
- 平衡二叉树、B树、B+树,B*树的区别与联系
- 浏览器火狐3.0发布之盛况
- 北京市工作居住证的申请与办理
- Matlab:连续按键、移动鼠标、鼠标点击、鼠标连点、输入字符,10行代码即可。