Ruby on Rails のテストに関するメモ
RSpec
語源はRequest Spec。
Capybara
カピバラ。
自然言語 (英語) に近い文法でテストを記述できる。
Cucumber
キューカンバー。(きゅうり)
こちらはオプション。
自然言語に近い文法でストーリーのように記述でき、専門知識のない人でも読むことができる、
振舞駆動開発用のツール。
Rubyではない。
例
Scenario: Unsuccessful signin Given a user visits the signin page When he submits invalid signin information Then he should see an error message
RSpecでテストを作成する
結合テスト (request spec) の生成
rails generate integration_test コントローラ名
spec/requestsディレクトリに、コントローラ名_spec.rb ができる。
Capybara DSLを使えるようにする
spec/spec/helper.rb
RSpec.configure do |config| . . . config.include Capybara::DSL end
spec.rbファイルの記述例
describe "Home page" do it "should have the content 'HOMEページ'" do # アクセスするパスを指定 visit '/static_pages/home' # テストしたい内容を記述。 page はCapybaraが提供するアクセス結果ページの変数。 expect(page).to have_content('HOMEページ') end end