`

BDD rspec with rails3 project

阅读更多

 

参考 源自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!


分享到:
评论

相关推荐

    使用RSpec 测试Rails 程序.pdf

    **RSpec**(RSpec is not a unit testing framework)是一种为Ruby编程语言设计的行为驱动开发(BDD)框架,而**Rails**是基于Ruby的一个全栈web应用框架。将RSpec与Rails相结合可以有效地进行单元测试、集成测试...

    自动化生成支持cucumber,Rspec的Rails(持续更新中)

    标题 "自动化生成支持cucumber,Rspec的Rails(持续更新中)" 暗示了这个压缩包文件的内容可能涉及使用Cucumber和RSpec这两种自动化测试工具在Ruby on Rails框架下的集成和配置。Cucumber是一种行为驱动开发(BDD)的...

    Agile+Web+Development+with+Rails中文版.pdf

    此外,《Agile Web Development with Rails》还涵盖了测试驱动开发(TDD)和行为驱动开发(BDD)。TDD强调先写测试,再编写代码,确保代码质量;BDD则更注重业务逻辑和用户行为的描述。书中将指导读者如何使用RSpec...

    在rails中 使用RSpec生产CHM文档

    RSpec是Rails开发中的一个行为驱动开发(BDD)测试框架,用于编写可读性强、易于理解的测试代码。通过RSpec,开发者可以清晰地表述他们期望的代码行为,确保软件按预期工作。在本案例中,它可能被用来验证生成CHM...

    Agile Web Development with Rails,Fourth Edition 第四版

    本书还会深入讲解TDD(测试驱动开发)和BDD(行为驱动开发)在Rails中的实践,使用Rspec和Cucumber等工具进行测试,以保证代码质量。测试是敏捷开发的核心,它们帮助开发者快速识别和修复问题,确保产品的稳定性和...

    Agile Web Development with Rails

    在《敏捷Web开发与Rails》中,作者将敏捷开发理念融入到Rails的实际项目中,讲解如何编写可测试的代码,使用TDD(Test-Driven Development)和BDD(Behavior-Driven Development)来驱动开发,并且讨论了版本控制、...

    RSpec 3.1中文版

    RSpec是Ruby语言开发的一款行为驱动开发(BDD)工具,它通过使用领域特定语言(DSL)来帮助开发人员编写测试用例。RSpec 3.1版本是RSpec框架的更新版,提供了更多的功能和更好的用户体验。Rails是一个用Ruby语言编写的...

    使用Cucumber+Rspec玩转BDD全集.rar

    使用Cucumber+Rspec玩转BDD(3)——用户登录 使用Cucumber+Rspec玩转BDD(4)——用户登录并“记住我” 使用Cucumber+Rspec玩转BDD(5)——安全退出 使用Cucumber+Rspec玩转BDD(6)——找回密码 使用Cucumber+...

    几个常用的plugin的直接下载

    `rspec`和`rspec-rails`是Ruby社区中非常流行的测试工具,用于行为驱动开发(BDD)。`rspec`是核心库,提供了断言和期望的结构,而`rspec-rails`是`rspec`的一个扩展,使其能够很好地与Rails框架集成,支持控制器、...

    BDD开发之rspec和cucumber

    ### BDD开发之rspec和cucumber #### 行为驱动开发(BDD)概览 行为驱动开发(Behavior-Driven Development, BDD)是一种软件开发方法论,它结合了敏捷开发的思想和技术,如测试驱动开发(TDD)和领域驱动设计(DDD)...

    The Rspec Book 最新版 (带Cucmber章节) - 最好的BDD书籍

    《RSpec Book》是关于行为驱动开发(BDD)的一本权威书籍,特别是针对Rspec这一Ruby语言的测试框架。本书的最新版包含了Cucumber章节,使得读者能够更好地理解和实践BDD理念。 行为驱动开发(BDD)是一种软件开发...

    Agile Web Development With Ruby On Rails第一及第二版

    此外,还探讨了如何集成测试,如使用RSpec和Cucumber进行行为驱动开发(BDD),以及如何部署应用到生产环境。书中还涵盖了RESTful设计原则,这是Rails中实现Web服务的一种标准方式。 第二版则在第一版的基础上进行...

    workout-app:使用rspec的Rails课程的健身应用程序

    【标题】"workout-app:使用rspec的Rails课程的健身应用程序"是一个基于Ruby on Rails框架的项目,它强调了行为驱动开发(Behavior Driven Development, BDD)的实践。在这个应用中,RSpec是一个核心工具,它允许...

    Agile Web Development with Rails for Rails 3.2

    ### Agile Web Development with Rails for Rails 3.2 #### 核心知识点概览 - **Rails 3.2概述** - **敏捷开发方法论** - **Model-View-Controller (MVC) 模式** - **Ruby on Rails基础与高级特性** - **面向对象...

    The Rspec Book -- BDD methodology

    3. **RSpec**和**Cucumber**共同构建了一个强大的测试框架,它们不仅帮助开发者更好地理解需求,还为项目的长期维护打下了坚实的基础。 #### 四、RSpec的实践应用 在实际开发过程中,使用RSpec进行测试时需要注意...

    Agile Web Development with Rails 4th -Final Edition

    《Agile Web Development with Rails 4th - Final Edition》是一本深入探讨Rails 3.0.5框架的权威指南,该书在2011年3月发布,为当时的技术环境提供了详尽的实践指导。Rails 3.0.5是Ruby on Rails框架的一个重要里程...

    Pragmatic - Agile Web Development with Rails

    《Pragmatic - Agile Web Development with Rails》是Ruby on Rails框架的经典教材,旨在引导初学者高效地学习敏捷Web开发。这本书的第三版于2009年发布,它结合了Pragmatic Programmers的实用主义理念与Ruby on ...

    使用Cucumber+Rspec玩转BDD(1)——用户注册

    在Ruby on Rails开发中,行为驱动开发(Behavior Driven Development, BDD)是一种常见的实践,它强调通过描述软件的行为来定义需求。Cucumber和RSpec是两个强大的BDD工具,它们一起工作可以创建清晰的测试场景,...

    Agile Web Development with Rails 2nd

    《敏捷Web开发与Rails》第二版是一本专为Ruby on Rails框架设计的详细教程,旨在帮助开发者以敏捷的方式构建高效、可扩展的Web应用程序。这本书深入浅出地讲解了使用Ruby语言和Rails框架进行Web开发的核心概念和技术...

Global site tag (gtag.js) - Google Analytics