Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

はじめに

この記事は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さんです。
よろしくお願い致します!

kidach1
Qiitaの運営方針に疑問があるため、基本的に今後の投稿は考えていません。 主に https://twitter.com/kidach1 で活動報告しています。
aktsk
株式会社アカツキは、スマートフォンゲームの企画開発を中心に事業を展開しております。創業以来全てのゲームを内製しているため、高い技術ノウハウが蓄積されています。今後は、新規事業の立ち上げも行ってまいります。
http://aktsk.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした