LoginSignup
4
4

More than 5 years have passed since last update.

勉強会BDD編<1> RSpec/Capybara - スタート

Last updated at Posted at 2016-03-09

関連記事

BDD(振舞駆動開発:behavior driven development)とは

  • プログラム開発手法の一種で、テスト駆動開発(TDD)から派生した物である。(wikipediaより)
  • テスト駆動開発でのテストに加えてこれから作成しようとするプログラムに期待される「仕様」を自然言語で併記しながらテストコードを記述する。
  • BDDで書いたスペックの実行結果を見てみよう。
  • この勉強会で作成するcustomerモデルのスペックである。
$ bin/rspec spec/models/customer_spec.rb

Customer バリデーション
  妥当なオブジェクト
  family_nameは空であってはならない
  family_nameは40文字以内
  family_nameに含まれる半角カナは全角カナに交換して受け入れる
  given_nameは空であってはならない
  given_nameは40文字以内
  given_nameに含まれる半角カナは全角カナに交換して受け入れる
  family_name_kanaは空であってはならない
  family_name_kanaは40文字以内
  family_name_kanaに含まれる半角カナは全角カナに交換して受け入れる
  given_name_kanaは空であってはならない
  given_name_kanaは40文字以内
  given_name_kanaに含まれる半角カナは全角カナに交換して受け入れる
  family_nameは漢字、ひらがな、カタカナを含んでもよい
  family_nameは漢字、ひらがな、カタカナ以外の文字を含まない
  given_nameは漢字、ひらがな、カタカナを含んでもよい
  given_nameは漢字、ひらがな、カタカナ以外の文字を含まない
  family_name_kanaはカタカナを含んでも良い
  family_name_kanaはカタカナ以外の文字を含まない
  family_name_kanaに含まれるひらがなはカタカナに交換して受け入れる
  given_name_kanaはカタカナを含んでも良い
  given_name_kanaはカタカナ以外の文字を含まない
  given_name_kanaに含まれるひらがなはカタカナに交換して受け入れる

Customer password=
  生成されたpassword_digestは60文字
  空文字を与えるとpassword_digestはnil

Customer#points
  関連付けられたRewardのpointsを合計して返す

Finished in 0.20008 seconds (files took 4.99 seconds to load)
26 examples, 0 failures
  • テストでありながら、モデルの仕様(スペック)を自然言語(日本語)で分かりやすく表している。

実習環境

アプリケーションの生成

rails new oiax -T -B -d mysql -m https://raw.githubusercontent.com/devtopia/rails_template/master/install.rb

トップページの生成

# run server
bin/rails g controller top index
bin/rails s -b 0.0.0.0 -p <ポート番号> # ゲストで起動

# config/routes.rb
root to: 'top#index'

# confirm url
http://192.168.33.10:<ポート番号> # ホストで確認 

最初のテスト

# create features directory
mkdir spec/features

# spec/features/top_page_spec.rb
require 'rails_helper'

describe 'トップページ' do
  example '挨拶文を表示' do
    visit root_path
    expect(page).to have_css('p', text: 'Hello World!')
  end
end

# , + c
  • 「, + c」はvimで実行したいスペックファイルを開いている状態で、コンマとcキーを同時に押すという意味である。
  • 10分で終わるRailsの開発環境構築」を参考にして実習環境を構築したら、上のvim設定を使える。

参考

4
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4