アプリなどを開発するブログ

React Native / Swift / Ruby on Railsなどの学習メモ。


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