113
118

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TDDAdvent Calendar 2013

Day 17

今度こそ快適・王道なTDD生活が始められる良記事10選+α [Rails/RSpec]

Last updated at Posted at 2013-12-17

はじめに

この記事はTDD Advent Calendar 2013の17日目の参加エントリです。

前日はid:a_suenamiさんのTDDが僕に教えてくれたことでした。

このエントリが目指すところ

「Railsで開発しつつも実はあまりテストを実践出来ていない」という方を対象に、

  • Rails*RSpecでunit/functional test
  • Capybaraでブラウザの挙動をシミュレート
  • FactoryGirlでテストデータを自由に準備
  • Guardでファイル編集の度にテストを自動実行
  • Sporkでサイクル高速化

を実現するために役立つ記事を紹介します。

RSpecの基本

改めて学ぶ RSpec

RSpec 簡潔に記述する

「RSpecとは何か」と「基本的な書き方」が身に付く2記事。
describeやcontext、subjectといった「骨組み」をこちらで抑えておきましょう。

RSpec/Capybara入門

Rails上で動かしていくので実践に近い形で学べる。
併せてCapybaraやFactoryGirlがどんなものかも分かります。
should はどこに行ったの?も抑えておきましょう。
まずは第6回の「モデルテストの演習」まで。

※なぜかChromeだとサンプルコードが読みづらいです。Safariなら問題ありませんでした。

RSpecもう一歩

Railsのコントローラをテストする

モデルのテスト(unit test)より書きづらいと言われる
コントローラテスト(functional test)ですが、こちらですべきことが分かります。

RSpec でテストを作るのに役立つ「モック/スタブ」のシンプルな説明

各テストを綺麗に分離していこうすると必要になってきます。

Capybara

※概要やセッティングは上記RSpec/Capybara入門-テストの基本構造で掴んでおきましょう。

[Rails][RSpec] Capybaraでフォーム入力をシミュレートしてテストする

Capybaraの便利さを感じる。

Capybara README.md Ja

「何ができるのか」のリファレンスとして、「Navigating」以下の
項目に目を通しておくと良いでしょう。

FactoryGirl

※概要やセッティングは上記RSpec/Capybara入門-letメソッドとFactory Girlで掴んでおきましょう。

factory_girl で最低限知っておきたい4つの使い方

FactoryGirlの概要を理解した後、いざ実践の際に困るのは
「アソシエーションを持つモデルのデータをどう作るか?」ではないでしょうか。
そんな疑問はこちらで解決。

[Ruby] FixtureからFactoryGirlへ

こちらまで理解すればFactoryGirlの普段使いで困ることは無くなると思います。

Guard/Spork

[Rails] RSpecによるBDD(振舞駆動開発)の基本 [SporkとGuardも]

自動かつ高速な快適テスト環境を作りましょう。

+α

Rails でつくる API のテストの書き方(RSpec + FactoryGirl)

APIのテストを書きたくなったらこちら。

rubyで標準出力をテストする方法

標準出力をテストケースに入れたくなることもありますね。

最後に

紹介した記事は必ずしも上から順にクリアしていく必要はなく、
相互に理解を深め合えるような内容です。

よく分からない部分にぶつかっても、どんどん先に進んでみましょう。

バトンタッチ

明日のエントリは@naghbIQtIqHomさんです。
よろしくお願い致します!

113
118
0

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
113
118

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?