経緯

「あの関数」が「あれ」を正しく返すか

みたいなテストもすごく大事なのですが、実際、ユーザが触るのは表の画面に表示されているものでしかなく、

「あのフォーム」に「あれ」をインプットして、「あのボタン」を押せば「あのページ」が表示される

みたいなことが一番ユーザの目につくところです。しかも、そういうところで間違った処理を書いてしまうと、かなり心象がよろしくないものです。

そういう表面的な部分を楽にチェックできるTurnipの導入方法について。

前提

  • bundleコマンドが使えること1

導入

作業ディレクトリの作成

ひとまず、作業ディレクトリを作りましょう。

mkdir turnip_test
cd turnip_test
mkdir -p spec/{features,steps}

必要なgemをインストール

次に必要なgemを管理するために、Gemfileを作成します。

bundle init

すると、ディレクトリ内にGemfileが作られていると思います。Gemfileに必要なものを記述していきましょう。

Gemfile

source "https://rubygems.org"

gem 'turnip'
gem 'capybara'
gem 'poltergeist'
bundle install --path=vendor/bundle

Macでやっているとき、エラーを吐くかもしれませんが、その話は脱線するので、最後に書いておきます。

.rspecファイルの作成

turnipでRSpecを使っていきます。.rspecファイルはその設定ファイルです。
turnip_test/.rspecを作成しましょう。

-r turnip/rspec
--color
--format doc

公式では一番上だけが書かれていますが、このままだと、成功だったら.、失敗だったらFで、

...F....F.

みたいな地味な表示になってしまうので、テンションがあがりません。色づけして見やすくするために--color--format docのオプションはつけておきましょう!

rspec_helper.rbの作成

rspec_helperはテストに必要になる関数を定義するファイルです。基本的にはシンプルに以下のような形でいいと思います。

Dir.glob('spec/steps/*.rb') { |f| load f, true }

require 'capybara/rspec'
require 'capybara/poltergeist'

Capybara.default_driver = :poltergeist
Capybara.javascript_driver = :poltergeist

featureを作成

実際にテストのシナリオを書いていくファイルを仮で作りましょう。

touch spec/features/hogehoge.feature

ここまで来たら、一旦実際に動かしてみます。

bundle exec rspec spec/features/hogehoge.feature

これで、

No examples found.

Finished in 0.00023 seconds (files took 0.47304 seconds to load)
0 examples, 0 failures

みたいに表示されたらインストール完了です!

ちょっと長くなってしまったので、実際作っていくのは別の記事にしようと思います。


Macで導入中にエラーが起きた時

An error occurred while installing nokogiri (1.6.5), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.5'` succeeds before bundling.

みたいなエラーを吐くことがあります。エラーメッセージをよくよく見ると、

The file "/usr/include/iconv.h" is missing in your build environment,
which means you haven't installed Xcode Command Line Tools properly.

To install Command Line Tools, try running `xcode-select --install` on
terminal and follow the instructions.  If it fails, open Xcode.app,
select from the menu "Xcode" - "Open Developer Tool" - "More Developer
Tools" to open the developer site, download the installer for your OS
version and run it.

と書いてあります。要は、「Xcode Command Line Toolsがインストールされてないから必要なファイルが見つからないよ!」と言われています。

メッセージに書いてあるとおり、

xcode-select --install

を実行してやれば、ソフトウェアのインストールが始まります。


  1. gem install bundlerでインストールできます。gem自体が入っていない場合は、他記事を参照して、インストールしてください。ここでは長くなるので省略します。