Techioz Blog

Sinatra でテストを実行するにはどうすればよいですか?

概要

Sinatra アプリケーションをテストする方法がわかりません。ただ走るだけですか

ルビー

それはうまくいかないようです。世の中にあるすべてのファイルは、ファイルの内容を記述する方法についてのみ説明しており、ファイルを実行する方法については説明していません。

ありがとう

解決策

十分にシンプルであるべきです。

my_app.rb が与えられた場合:

require 'rubygems' # Required only for Ruby version prior to 1.9
require 'sinatra'

get '/hi' do
  'Hello World!'
end

そして my_app_test.rb:

require 'my_app'
require 'test/unit'
require 'rack/test'

set :environment, :test

class MyAppTest < Test::Unit::TestCase
  include Rack::Test::Methods

  def app
    Sinatra::Application
  end

  def test_hi_returns_hello_world
    get '/hi'
    assert last_response.ok?
    assert_equal 'Hello World!', last_response.body
  end
end

適切な gem がインストールされていることを確認する必要があります。

gem install sinatra rake rack-test

これで、次のようにアプリケーションとテストを実行できるようになります。

ruby my_app.rb
ruby my_app_test.rb