テスト環境を整備します。
. ├── config ├── config.ru ├── Gemfile ├── Gemfile.lock ├── Guardfile # 追加 ├── lib │ └── app.rb ├── public ├── spec │ ├── app_spec.rb # 追加 │ └── spec_helper.rb # 追加 └── views
Gemfile
source :rubygems gem 'sinatra', require: 'sinatra/base' group :development do gem 'sinatra-reloader', require: 'sinatra/reloader' end group :test do gem 'rspec' gem 'rack-test', require: 'rack/test' gem 'guard-rspec' end
spec/spec_helper.rb
require 'bundler/setup' Bundler.require :default, :test require 'app' RSpec.configure do |config| config.include Rack::Test::Methods end
spec/app_spec.rb
require 'spec_helper' describe MyApp do def app @app ||= MyApp end context "when get '/'" do before do get '/' end subject { last_response } its(:status) { should == 200 } its(:body) { should include("Hello World!") } end end
$ bundle install $ bundle exec rspecこれで2つのテストが通ると思います。
加えて、テストもオートロードされるようGuardを使用します。
Guardfile
guard 'rspec', :version => 2, :cli => "-c -fs" do watch(%r{^spec/.+_spec\.rb$}) watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } watch('spec/spec_helper.rb') { "spec" } watch(%r{^views/(.+)\.(slim|scss)$}) end
$ bundle exec guardXubuntu 12.04になってnotificationもまともに動くようになっているようです。 (11.10まで私の環境では不安定でした)
0 件のコメント:
コメントを投稿