参考 源自Ruby迷
>>原文链接地址:RSpec 2 on Rails 3入门
BDD(Behavior Driven Development)行为驱动开发现在很火,因此RSpec也非常流行。
RSpec是一个基于Ruby的BDD行为测试框架,在Rails中,很多人用它来代替默认的测试框架Test::Unit。
这是一篇RSpec入门文章。
一、创建项目
#创建项目,不生成Test:Unit测试代码
rails new rspec_demo --skip-test-unit
二、在Rails中加入RSpec-Rails
1、修改Gemfile
gem 'rspec-rails', :group => [:development, :test]
2、安装Gem
bundle install
3、生成RSpec框架代码
rails generate rspec:install
会自动创建下面文件:
.rspec – 用于配置 rspec 命令行的配置文件,默认包含 – colour 来启用RSpec输出文字高亮。
spec – 该目录用于存放所有模型变量,控制器,视图,和项目中其它的specs。
spec/spec_helper.rb – 该文件会在每个spec执行时被调用。该文件设置了测试变量,并包含项目级别RSpec配置项,加载引用文件等等。
三、创建用于测试的Model
rails generate scaffold Post title:string context:text
会生成如下文件:
#创建model的测试
create spec/models/post_spec.rb
#创建controller的测试
create spec/contollers/posts_controller_spec.rb
#创建view的测试
create spec/views/posts/edit.html.erb_spec.rb
create spec/views/posts/index.html.erb_spec.rb
create spec/views/posts/new.html.erb_spec.rb
create spec/views/posts/show.html.erb_spec.rb
#创建helper的测试
create spec/helpers/posts_helper_spec.rb
#创建route的测试
create spec/routing/posts_routing_spec.rb
#创建请求的测试
create spec/requests/posts_spec.rb
rake db:migrate
生成数据库
常用的RSpec相关命令:
rake spec #执行所有测试
rake spec:models #只执行models的测试
rake spec/models/mymodel_spec.rb # 只测试一个文件
四、自己写测试
与TDD类似,步骤如下:写测试–>执行测试出错–>写代码–>通过测试
1、写测试
# spec/models/post_spec.rb
require 'spec_helper'
describe Post do
before(:each) { @post = Post.new }
subject { @post }
it { should be_a_kind_of ActiveRecord::Base }
context "when title is blank" do
before { @post.title = "" and @post.save }
subject { @post }
it { should have(1).errors_on(:title) }
end
context "when title is not blank" do
before { @post.title = "rubyer.me" and @post.save }
subject { @post }
it { should have(0).errors_on(:title) }
end
end
执行测试
rspec spec/models/post_spec.rb
#Finished in 24.88 seconds
#3 examples, 1 failures, 2 passed
修改代码
class Post < ActiveRecord::Base
validates_presence_of :title
end
再次执行测试
rspec spec/models/post_spec.rb
#3 examples, 0 failures, 3 passed
测试通过,Use RSpec, Be Happy!
分享到:
相关推荐
使用Cucumber+Rspec玩转BDD(3)——用户登录 使用Cucumber+Rspec玩转BDD(4)——用户登录并“记住我” 使用Cucumber+Rspec玩转BDD(5)——安全退出 使用Cucumber+Rspec玩转BDD(6)——找回密码 使用Cucumber+...
使用Cucumber+Rspec玩转BDD(3)——用户登录 使用Cucumber+Rspec玩转BDD(4)——用户登录并“记住我” 使用Cucumber+Rspec玩转BDD(5)——安全退出 使用Cucumber+Rspec玩转BDD(6)——找回密码 使用Cucumber+Rspec玩...
The Rspec Book 最新版 (带Cucmber章节),最好的BDD数据
这是在udemy上使用带有RSpec和Capybara课程的Ruby on Rails的BDD的github存储库
这是介绍BDD开发推荐的图书,今年3月份出的,作者基本已经完成了全部的内容了.
这本书特别的棒,里面不仅仅介绍如何使用Rspec,同时最关键的还是告诉你如何去做BDD,TDD开发。
ruby(rails)单元测试相关的gem,rspec、cucumeber。BDD
使用 DockerBDD 的 Rails 应用示例 这演示了如何使用我们从构建的图像来运行、测试和构建 rails 应用程序的容器。 跑步 有关更多详细信息,请参阅项目,但基础知识是: 使用流浪者: $ vagrant up $ vagrant ...
TestProject-BDD-Cucumber-示例如何使用Cucumber BDD设置TestProject,以将BDD方案报告给TestProject。
Ruby on Rails应该不用多说了吧,Web领域敏捷开发最有竞争力的框架。
RSpec和Capybara的美味组合,用于验收BDD 什么是牛排? Steak是RSpec-Rails的最小扩展,增加了使用Capybara对Rails应用程序进行验收测试的一些便利。 它是普通Ruby中Cucumber的替代品。 这是牛排中的验收规范: ...
这是这篇文章的原版pdf,下载zip解压缩即可得到. 博文链接:https://lgn21st.iteye.com/blog/188624
Replete with tutorials and practical examples, the RSpec Book will help you get your BDD on, taking you from executable requirements to working software that is clean, well tested, well documented, ...
rspec-可与稳定Rust一起使用的BDD测试工具 当您喜欢BDD和所有嵌套的describe/context/it测试方式时,但是您也喜欢每天编译代码时 :OK_hand: 。 如果您不知道Rust是什么,或者对术语BDD,TDD感到困惑,或者只是想对...
使用RSpec的样例应用程序进行日常Rails测试(2017版) 请参阅博客,以获取有关此版图书的新闻。 您可以在GitHub的找到早期版本的示例源。 谢谢! 进行示例Rails 5.1应用程序: Aaron Sumner进行测试驱动开发的实用...
rspec 是目前bdd測試的使用工具,很適合描述測試的內容
bdd-with-codeceptjs-testcafe
简单的应用模板 gem slim-rails ... rspec-rails宝石 用于更换夹具的制造宝石 simple_form gem(可选) 继承的资源宝石(可选) 用法 只需在控制台中运行 rails new your_awesome_app_name -T -d