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!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单片微型计算机(MCU)经过多年的发展,在性能上有很大的进步,在型号上发展到上千种类,已经广泛应用于人类社会生活的各个领域。单片机课程已经成为高校计算机、自动化、测控以及电子信息工程等专业的重要课程。该课程是一门理论性和实践性都很强的课程,在实际教学中,应将理论教学和实验教学紧密结合。学生在掌握理论知识之余,必须通过编写程序、设计硬件电路、仿真、调试这一系列的实验过程,才能更好地掌握单片机的结构原理和应用技能。随着单片机及其接口技术的飞速发展,目前市场上供应的编程仿真实验资源并不能完全满足高校单片机课程教与学的需求,构建低成本、技术先进、源码公开的单片机编程仿真实验系统,对我国单片机课程的教学和单片机领域人才的培养具有重要的现实意义。 本论文结合目前教学中对单片机编程仿真实验系统的实际需求,采用模块化结构设计思想,精心设计和开发了单片机编程仿真实验系统。该单片机编程仿真实验系统由PC机端单片机编程控制软件和单片机编程仿真实验板两部分组成。PC机端的单片机编程控制软件可以自动检测到连接到单片机编程仿真实验板上的单片机,控制单片机编程器擦除、写入、读出、校验目标单片机ROM中的程序,以十六进制文件(.HEX文件)格式显示在控制界面内;单片机仿真实验系统能够把写入单片机的程序实时地运行,并呈现实际运行效果。单片机编程控制软件和单片机仿真实验板组成一个完整的单片机编程仿真实验系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值