安装使用rspec
一,安装ruby。
二,运行命令,安装rspec的gem包:
gem install rspec
会看到如下的结果:
Fetching: rspec-core-2.14.7.gem (100%)
Fetching: diff-lcs-1.2.5.gem (100%)
Fetching: rspec-expectations-2.14.5.gem (100%)
Fetching: rspec-mocks-2.14.6.gem (100%)
Fetching: rspec-2.14.1.gem (100%)
Successfully installed rspec-core-2.14.7
Successfully installed diff-lcs-1.2.5
Successfully installed rspec-expectations-2.14.5
Successfully installed rspec-mocks-2.14.6
Successfully installed rspec-2.14.1
5 gems installed
三,在纯ruby环境中使用rspec。
1,新建一个文件夹,随意命名为my_test。
2,在my_test下新建一个lib文件夹,lib文件夹下新建一个rb文件,例如bowling.rb。
3,在my_test下新建一个测试文件,命名为bowling_spec.rb,文件名一定要以_spec结尾。
4,在bowling.rb中写入如下代码:
# bowling.rb
class Bowling
def hit(pins)
end def score
0
end
end
5,在为bowling_spec.rb中写入如下测试代码:
# bowling_spec.rb
require 'bowling' describe Bowling, "#score" do
it "returns 0 for all gutter game" do
bowling = Bowling.new
20.times { bowling.hit(0) }
bowling.score.should eq(0)
end
end
6,运行命令,进行测试:
$ rspec bowling_spec.rb --format nested Bowling#score
returns 0 for all gutter game Finished in 0.007534 seconds 1 example, 0 failures
四,rails中使用rspec。
1,安装gem包,运行命令:
gem install rspec-rails
会看到如下的结果:
Fetching: i18n-0.6.9.gem (100%)
Fetching: minitest-4.7.5.gem (100%)
Fetching: atomic-1.1.14.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
Fetching: thread_safe-0.1.3.gem (100%)
Fetching: activesupport-4.0.3.gem (100%)
Fetching: builder-3.1.4.gem (100%)
Fetching: rack-1.5.2.gem (100%)
Fetching: actionpack-4.0.3.gem (100%)
Fetching: rspec-rails-2.14.1.gem (100%)
Successfully installed i18n-0.6.9
Successfully installed minitest-4.7.5
Successfully installed atomic-1.1.14
Successfully installed thread_safe-0.1.3
Successfully installed activesupport-4.0.3
Successfully installed builder-3.1.4
Successfully installed rack-1.5.2
Successfully installed actionpack-4.0.3
Successfully installed rspec-rails-2.14.1
9 gems installed
2,创建一个rails工程,进入工程目录,执行如下命令:
rails generate rspec:install
如果提示:Could not find generator rspec:install.
请看http://www.nujk.com/could-not-find-generator-rspec-install
这个时候,就会创建了spec的文件夹。
3,使用脚手架新建一个model文件:
rails generate model bowling
会看到如下执行结果:
invoke active_record
create db/migrate/20140224132433_create_bowlings.rb
create app/models/bowling.rb
invoke rspec
create spec/models/bowling_spec.rb
这个时候会发现,自动为bowlings.rb创建了对应的spec/models/bowling_spec.rb文件。
4,在bowlings.rb中添加一个方法:
class Bowling < ActiveRecord::Base
# attr_accessible :title, :body
def self.my_function()
return "this is function for test rspec"
end
end
5,在spec/models/bowling_spec.rb文件中为新加的方法写一个测试例子:
require 'spec_helper' describe Bowling do
#pending "add some examples to (or delete) #{__FILE__}"
it "shoud execute my_function" do
Bowling.my_function().should == "this is function for test rspec"
end
end
6,执行rspec测试
在rails工程目录下,执行:
rspec .\spec\models\bowling_spec.rb
这个时候会打印:
Finished in 0.02 seconds
1 example, 0 failures Randomized with seed 13492
结束:
以上仅仅是最基本的rspec安装步骤。对于rspec的详细请参见https://github.com/rspec/rspec-rails
安装使用rspec的更多相关文章
- rspec的一些常见用法
这里讲了如何安装rspec,安装使用rspec. 下面介绍一下rspec中常见的使用方法. 下面是一个最简单的测试用例,判断true是不是等于true,should_be是旧的用法,新用法推荐使用ex ...
- rspec学习02
元数据 RSpec-core存储元数据哈希每实例和组,其中包含他们的描述,声明的位置等等,这个hash控制很多RSpec核心的功能,包括输出格式化程序(访问描述和位置),和before,after钩子 ...
- 用rspec执行自动化测试用例
rspec是一款行为驱动开发(BDD)的工具,不过在这里用于测试,准确来说应该是测试驱动开发(TDD)吧.事实上我也没搞清楚.作为初学者不清楚就不清楚吧,以后会知道的.写博客无非就是写写学习笔记,不纠 ...
- Ruby(Selenium / Rspec)在Windows 8_64上安装步骤
1.首先需要下载RubyInstaller.exe程序(下载地址随便都能找到). 如:rubyinstaller-2.2.2-x64.exe 安装好Ruby后,需要更新Gems gem update ...
- ruby rspec安装
在rubymine里新建Rails application
- cucumber:环境安装
1.安装RubyInstallerhttp://rubyinstaller.org/downloads/注意:安装目录结构不要太深安装完成后在命令行运行: ruby –v 可以查看是否安装成功2.安装 ...
- CentOS 6.x安装Metasploit
现在开始安装Metasploit框架,前面的包安装成功之后,我们需要再安装一些Metasploit依赖的Ruby库,命令如下: gem install wirble pg sqlite3 msgpac ...
- rspec+rest-client测试第三方web service
如果你手工测试Restful 服务将会是一件非常单调乏味的事情.当然,目前有一些浏览器插件可以通过可视化的界面帮助你手工测试,例如postman.rest console,但是每次系统版本更新,你都需 ...
- Selenium WebDriver + Grid2 + RSpec之旅(四) ----通过RSpec编写测试用例
Selenium WebDriver + Grid2 + RSpec之旅(四) ----通过RSpec编写测试用例 自动化测试和手工测试一样,是要有测试用例,有检查点和测试结果的,接下来我们通过RSp ...
随机推荐
- 游戏设计模式系列(一)—— 单线逻辑&&数据驱动,搞定最容易卡死的结算界面
从事游戏行业1年多了,个中心酸不知从何说起.抛开非技术的不说,一个开发者需要面对的最大问题,可能就是和策划频繁改变的需求做斗争了吧,这时候就体现了设计模式的重要性,抛开正式的设计方式不说,先讲讲我1年 ...
- 怎样用VB编写.DLL动态链接库文件
VB一般可以生成两种特殊的DLL,一个是ActiveX DLL和ActiveX Control(*.ocx).这两种DLL都是VB支持的标准类型,在VB自身的例子中有,你可以参考.更详细的介绍可以参考 ...
- C++临时变量的生命周期
C++ 中的临时变量指的是那些由编译器根据需要在栈上产生的,没有名字的变量.主要的用途主要有两类: 1) 函数的返回值, 如: string proc() { return string(" ...
- Duilib学习笔记《03》— 控件使用
在前面已经对duilib有个一个基本的了解,并且创建了简单的空白窗体.这仅仅只是一个开始,如何去创建一个绚丽多彩的界面呢?这就需要一些控件元素(按钮.文本框.列表框等等)来完善. 一. Duilib控 ...
- Tomcat Connector三种运行模式
BIO: 一个线程处理一个请求.缺点:并发量高时,线程数较多,浪费资源. Tomcat7或以下,在Linux系统中默认使用这种方式. NIO: 利用Java的异步IO处理,可以通过少量的线程处理大量的 ...
- WinForm程序用使用List对象绑定DataGridView数据源
1. 在用List<T>对象绑定DataGridView数据源属性的时候,数据源的内容不会动态更新,如果List<T>对象集合中的数据发生变化,那么数据控件的数据源是不会得到更 ...
- solr5.5教程-schema.xml部分配置
本文章全部内容均翻译自solr自带的配置文件. 1.Field结点说明 name: 必须的,field的名字 type: 必须的,fieldType部分所定义的type的名字 index ...
- Secure your iPhone with 6 digit passcode by upgrading to iOS9
IP-Box could crack 4 digit passcode, what about 6 digit passcode??? All you need to do is to upgrade ...
- 用户 'IIS APPPOOL\Classic .NET AppPool' 登录失败。
“用户 'IIS APPPOOL/Classic .NET AppPool' 登录失败”的解决方法 错误: “/”应用程序中的服务器错误. 用户 'IIS APPPOOL\Classic .NET ...
- ★★★.NET 在meta标签中使用表达式设置页面的关键字
在aspx文件中 给meta标签的属性复制是不能直接使用 表达式的 错误的写法: <meta name="keywords" content="<%=news ...