読者です 読者をやめる 読者になる 読者になる

酔いどれエンジニアのブログ

有限会社wisdomのスタッフブログです。主にプログラミングやアプリケーション開発の話題を書いていきます。

ブログシステムを作りながらRailsを学ぶ(6) Turnipをインストールする

前回、ブログシステムを作りながらRailsを学ぶ(5) 一覧画面のレイアウトを整えるでは、一覧画面をそれなりな形に整えました。

しかし、一覧画面に記事の全文が表示されていたり、日付の後にUTCとかついていていたりと色々と気になるところがありますので、そういうところを修正したいと思うのですが、修正する前にあるべき姿を定義したいと思います。

テストファーストです。

Turnipとは何か

Turnipはhttps://github.com/jnicklas/turnip にあります。

ここにはこう書かれています。

Turnip is a Gherkin extension for RSpec. It allows you to write tests in Gherkin and run them through your RSpec environment. Basically you can write cucumber features in RSpec.

直訳するとこう。

カブは、RSpecのためのガーキン拡張したものです。

それはあなたがガーキンでテストを書いて、あなたのRSpecの環境を介してそれらを実行することができます。

基本的には、RSpecの中でキュウリの機能を記述することができます。

直訳好きです。

つまり、Turnipは、RSpecのためにGherkin(という記述方法)を拡張したものであり、テストをGherkinで書いて、RSpecを介して実行することが出来ます。 cucumberと同じようなものです。

Turnipをインストールする(はまった)

https://github.com/jnicklas/turnip にあるように、Gemfileに以下を追加し、bundleを実行したところエラーが出てしまいました…。

group :test do
  gem "turnip"
end
$ bundle

syntax error,
unexpected ':', expecting kEND
  gem 'sdoc', require: false

なぜ急に。 というわけで、gem 'sdoc', require: falsegem 'sdoc', :require => falseに書き換えて再度bundleを実行してみます。

しかし上手く行かず、今度は違うエラーが出てしまいました。

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

Gemfileに以下の記述を追加し、再度bundleを実行します。

ruby "2.0.0"
Your Ruby version is 1.8.7, but your Gemfile specified 2.0.0

しかし上手く行かず。ruby -vで見ても2.0.0p247が入っているのに…。

色々やってみましたが、一度gem install bundler実行してみたら上手くいきました。

$ gem install bundler
$ bundle

というわけで続きを。 .rspecというファイルをGemfileと同じ階層に作り以下の内容を記述します。

-r turnip/rspec

以上で準備は終了です。 これで rspec テストファイルでテストを実行することが出来ます。 Gemfileと同じ階層にrspecというフォルダを作り、そこにテストを入れておくとrspecと実行するだけで、テストが実行できるようになるので、このフォルダにテストを作るようにすると良いでしょう。

リモートリポジトリに送信する

Gitに反映させます。 今回もマージは行いません。

$ git add .
$ git commit -am "turnip setup and gemfile debug"
$ git push origin edit_articles_index