rspecによるrailsテスト入門 第五章 コントローラスペックの基礎

19
EveryDayRailsRSpec リューノス読書会 2015-10-15 第五章 コントローラスペックの基礎

Upload: akai

Post on 07-Jan-2017

313 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

EveryDayRailsRSpecリューノス読書会

2015-10-15

第五章

コントローラスペックの基礎

Page 2: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

コントローラは不憫です

Page 3: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

開発者は皆、うすいコントローラを書きたがる

Page 4: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

0.02mm?

Page 5: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

薄いほうがええやろ?w

Page 6: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

うすいだけじゃきもちよくなれない

Page 7: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

第五章 概要● なぜコントローラをテストするのか● コントローラのテストの基礎● コントローラスペックの整理● スペック用のデータ準備● コントローラ7つのCRUDとテスト● 入れ子なルーティングについて● CSVやJSONなど、非HTMLなコンテンツのテスト

Page 8: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

● なぜコントローラをテストするのか● コントローラテストの基礎● コントローラスペックの整理● スペック用のデータ準備● コントローラ7つのCRUDとテスト● 入れ子なルーティングについて● CSVやJSONなど、非HTMLなコンテンツのテスト

Page 9: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

いつかちゃんと全部まとめたいネ……。

Page 10: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

なぜコントローラをテストするのか?

Page 11: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

何故?

Page 12: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

どうしよっかなぁ

● テストしたほうがいいね!– コントローラはクラスを

持ったメソッドだからテストすべきだ

– 統合テストと比べてすぐ書けるよね

– 統合テストより早く動くしね

● テストしなくてもよくね?– コントローラは0.02mmみた

いなモンだしいらなくね?– コントローラスペック確かに

速いけどモデルとかオブジェクト単体のテストよりは遅いじゃん

– フィーチャースペック一つで複数のコントローラテストしてるようなもんだしなァ

Page 13: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

しないより

したほうが

いいに

きまってるからだろうが

Page 14: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

ゴムはつけましょう

Page 15: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

コントローラテストの基礎

Page 16: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

コントローラスペックの基本構文

# 保存が完了したらホームページにリダイレクトすること

it "redirects to the home page upon save" do

post :create, contact: FactoryGirl.attributes_for(:contact)

expect(response).to redirect_to root_url

end

Page 17: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

コントローラスペックの基本構文 # 保存が完了したらホームページにリダイレクトすること

it "redirects to the home page upon save" do

post :create, contact: FactoryGirl.attributes_for(:contact)

expect(response).to redirect_to root_url

end

● httpメソッドとコントローラメソッドと任意のパラメータ– postと:create、そして後ろに続くFactoryGirl.atrr~

● FactoryGirl.attrbutes_for– テストデータがハッシュで作られるらしい

Page 18: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

やあ (´・ω・`)ようこそ、バーボンハウスへ。このテキーラはサービスだから、まず飲んで落ち着いて欲しい。

うん、「まだ」なんだ。済まない。仏の顔もって言うしね、謝って許してもらおうとも思っていない。

でも、このプレゼンを聞いたとき、君は、きっと言葉では言い表せない「ときめき」みたいなものを感じてくれたと思う。殺伐とした世の中で、そういう気持ちを忘れないで欲しいそう思って、このプレゼンを作ったんだ。

じゃあ、注文を聞こうか。

Page 19: RSpecによるRailsテスト入門 第五章 コントローラスペックの基礎

● Laughing at Dean | Flickr - Photo Sharing! https://www.flickr.com/photos/wickenden/3644297054/

● 258/365: Under my skin | Flickr - Photo Sharing! https://www.flickr.com/photos/pinkcotton/3924251445/

● I'm Sorry | Flickr - Photo Sharing! https://www.flickr.com/photos/maroonsurreal/6288367519/