Sinatra 101(3)--自动化测试

首先,安装rspec,非常简单
gem install rspec

rspec只是提供了各种基础的测试功能,要测试Sinatra的网络功能,还需要安装rack,和rack-test, 这两个gem的Rack::Test::Methods模块提供了很多模拟应用请求的功能, 还提供了很多assertions用以验证repsonse。
gem install rack
gem install rack-test

接下来,写第一个测试,本文中将测试在Sinatra 101(2)中创建的Note系统,创建测试文件’main_spec.rb’
require File.dirname(__FILE__)+'/main.rb'
require 'rack/test'
set :environment, :test
def app
Sinatra::Application
end
describe 'Note System' do
include Rack::Test::Methods
it 'should can access home page' do
get '/'
last_response.should be_ok
end
end

测试代码主要注意一下几点:
* require ‘rack/test’,加载一些基础的测试API。
* set :environment, :test使用测试环境。
* def app方法指明测试的目标是一个Sinatra框架的应用。
* include Rack::Test::Methods 杂糅进一些辅助测试的方法,这些方法可以让测试代码可读性更高。

本文主要不是介绍Rspec和Rack Test Methods,有兴趣的同学请自行脑补。

运行测试:’rspec main_spec.rb‘, 结果如下:
Finished in 0.05535 seconds
1 example, 0 failures

现在,代码已经被测试了,但是我不想每次改动代码,都要重新运行一次rspec命令,作为程序员,这是浪费生命,我们要尽量automate一切。

首先安装gem ‘ZenTest’,
gem install ZenTest

然后,在项目目录下,创建Rspec配置文件.rspec
--format nested
--color
该配置文件告诉Rspec使用nested风格的输出,另外,使用颜色标注通过和失败的测试。

再接着,需要把所有的rspec测试移动到spec目录下,这是autotest的约定用法,移动之后,运行命令 ‘autotest’,系统运行所有的rspec测试,并且监控文件改动,有任何文件改动就会触发一次测试,大家可以改动文件试试,从此再也不用手动运行测试命令了。

[b]Mac用户特殊技能[/b]
对于哪些特别“懒”的程序员,在Mac下,还有一个技能非常实用, 使用Growl软件提供的Notification功能,自动检测测试结果,给出通知,程序员都不需要自己跑到命令行下去查看运行的结果,效果图如下:
[img]http://dl.iteye.com/upload/attachment/0083/6234/8bdfc262-1bb3-3768-9724-7b65faca3dca.png[/img]
[img]http://dl.iteye.com/upload/attachment/0083/6236/72ed714e-bc80-3547-9ff4-951099ec6dea.png[/img]
首先,需要安装Growl软件,该软件是需要买的。
然后安装gems
gem install autotest-growl
gem install autotest-fsevent

最后,配置autotest的运行环境,在项目根目录创建文件“.autotest”,在该文件中引入之前安装的2个gem:
require 'autotest/growl'
require 'autotest/fsevent'

重启命令行,运行’autotest‘, have fun!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值