Submit Search
Upload
Rails on rspec plactice
•
Download as PPTX, PDF
•
0 likes
•
349 views
K
k-motoyan
Follow
Report
Share
Report
Share
1 of 19
Download now
Recommended
Dark vol4 for_slideshare
Dark vol4 for_slideshare
ara_ta3
Lets scala
Lets scala
smdkk
Greenhouse Service Network International oktober 2015 2
Greenhouse Service Network International oktober 2015 2
Peter de Vreede
Tugas 1
Tugas 1
selviaoktoviani
Thriving with Adult ADHD: The Science of Feeling Good!
Thriving with Adult ADHD: The Science of Feeling Good!
Graeme Dyck
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
Quan Truong Anh
Phpでアプリケーションサーバー
Phpでアプリケーションサーバー
k-motoyan
Scala Daysに行ってみて
Scala Daysに行ってみて
Kota Mizushima
Recommended
Dark vol4 for_slideshare
Dark vol4 for_slideshare
ara_ta3
Lets scala
Lets scala
smdkk
Greenhouse Service Network International oktober 2015 2
Greenhouse Service Network International oktober 2015 2
Peter de Vreede
Tugas 1
Tugas 1
selviaoktoviani
Thriving with Adult ADHD: The Science of Feeling Good!
Thriving with Adult ADHD: The Science of Feeling Good!
Graeme Dyck
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
Quan Truong Anh
Phpでアプリケーションサーバー
Phpでアプリケーションサーバー
k-motoyan
Scala Daysに行ってみて
Scala Daysに行ってみて
Kota Mizushima
What is JSpec
What is JSpec
eiji ienaga
ラムダのコンパイル結果を5分で説明するよ
ラムダのコンパイル結果を5分で説明するよ
YujiSoftware
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
Scalaの現状と課題
Scalaの現状と課題
Kota Mizushima
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
Goh Matsumoto
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
Kei Nakazawa
JavaWorld Day 2009 Scala
JavaWorld Day 2009 Scala
Tomoharu ASAMI
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
Yuto Suzuki
Do you like scala
Do you like scala
Yuto Suzuki
ライトニングトーク資料 OSC東京2017秋
ライトニングトーク資料 OSC東京2017秋
Shinji Tanimoto
Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009
Taisuke Shiratori
RubyとDSLと メタプログラミングと
RubyとDSLと メタプログラミングと
xiidec
こわくないScala
こわくないScala
FScoward
Pry による repl 駆動開発について
Pry による repl 駆動開発について
Tomoya Kawanishi
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
yayamamo @ DBCLS Kashiwanoha
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
Kenichi Tachibana
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
read parse-css
read parse-css
Satoshi KOJIMA
Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2edition
Satomi Tsujita
More Related Content
Similar to Rails on rspec plactice
What is JSpec
What is JSpec
eiji ienaga
ラムダのコンパイル結果を5分で説明するよ
ラムダのコンパイル結果を5分で説明するよ
YujiSoftware
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
Scalaの現状と課題
Scalaの現状と課題
Kota Mizushima
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
Goh Matsumoto
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
Kei Nakazawa
JavaWorld Day 2009 Scala
JavaWorld Day 2009 Scala
Tomoharu ASAMI
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
Yuto Suzuki
Do you like scala
Do you like scala
Yuto Suzuki
ライトニングトーク資料 OSC東京2017秋
ライトニングトーク資料 OSC東京2017秋
Shinji Tanimoto
Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009
Taisuke Shiratori
RubyとDSLと メタプログラミングと
RubyとDSLと メタプログラミングと
xiidec
こわくないScala
こわくないScala
FScoward
Pry による repl 駆動開発について
Pry による repl 駆動開発について
Tomoya Kawanishi
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
yayamamo @ DBCLS Kashiwanoha
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
Kenichi Tachibana
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
read parse-css
read parse-css
Satoshi KOJIMA
Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2edition
Satomi Tsujita
Similar to Rails on rspec plactice
(20)
What is JSpec
What is JSpec
ラムダのコンパイル結果を5分で説明するよ
ラムダのコンパイル結果を5分で説明するよ
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
Scalaの現状と課題
Scalaの現状と課題
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
ScalaでASICやFPGA用の回路を設計するChisel
ScalaでASICやFPGA用の回路を設計するChisel
JavaWorld Day 2009 Scala
JavaWorld Day 2009 Scala
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
Do you like scala
Do you like scala
ライトニングトーク資料 OSC東京2017秋
ライトニングトーク資料 OSC東京2017秋
Beginners Scala in FAN 20121009
Beginners Scala in FAN 20121009
RubyとDSLと メタプログラミングと
RubyとDSLと メタプログラミングと
こわくないScala
こわくないScala
Pry による repl 駆動開発について
Pry による repl 駆動開発について
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
A HUGE CHANGE RAILS 5 IS APPROACHING FAST
Scalaでのプログラム開発
Scalaでのプログラム開発
Ruby on Rails 入門
Ruby on Rails 入門
read parse-css
read parse-css
Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2edition
Rails on rspec plactice
1.
Rails on Rspec plactice 実運用から考察するRailsのRspec運用方法
2.
目録 ・1クラス1Specファイルは冗長だ! ・APIのテスト ・FactoryGirl ・カバレッジ ・便利なGemを使おう ・その他
3.
目録 ・1クラス1Specファイルは冗長だ! ・APIのテスト ・FactoryGirl ・カバレッジ ・便利なGemを使おう ・その他
4.
Rails on Rspec plactice 1クラス1Specファイルという 分割は冗長だ! RailsのGenerator機能に則って開発 していると、Specファイルは自然 と1クラス1Specという単位で分 割されていきます。
5.
Rails on Rspec plactice 1クラス1Specファイルという 分割は冗長だ! 例えば、モデルクラスに書くテス トを考えた時にどのようなテスト が考えられるでしょうか? ・DBのスキーマ定義 ・モデル間の関連 ・プロパティ、Enum ・バリデーション ・Scope ・クラスメソッド ・インスタンスメソッド etc... うわっ、テストの種類 こんなに多いの!
6.
Rails on Rspec plactice 1クラス1Specファイルという 分割は冗長だ! 以下の方針で分割しましょう ・DB構造、プロパティ、Enum、バリデーション ・Scopeごとに1ファイル ・クラスメソッドごとに1ファイル ・インスタンスメソッドごとに1ファイル ディレクトリ構造を分けてSpecファイルを配置す ることで、確認したいテストを探しやすくなるほか、 1テストあたりのコード量が減り、また、そのファ イルにはそのテストに必要な情報しか記述しないの で読みてにも優しい。
7.
Rails on Rspec plactice 1クラス1Specファイルという 分割は冗長だ! Modelクラスのテストに限定して考 えましたが、考え方はControllerク ラス、Helperモジュールなどでも 考え方は同じです。 メソッド単位でテストファイルを 作成していくと見通しの良いテス トファイルが作成出来ます。
8.
目録 ・1クラス1Specファイルは冗長だ! ・APIのテスト ・FactoryGirl ・カバレッジ ・便利なGemを使おう ・その他
9.
Rails on Rspec plactice APIのテスト APIのテストにはRailsが定義するデ フォルトは存在しません。 またGrapeのようなDSLを利用する とメソッド単位という分割方法は 使えなくなります。
10.
Rails on Rspec plactice APIのテスト APIについては、1エンドポイント 毎に1つのテストファイルを作成 していくのがよいと考えます。 この時、テストファイルの命名に は api_[request_method]_[resource]_[ac tion]_specとすると、ファイル名か らの検索性能が向上するはずです。 ファイルの命名について、パスパラメタのことは特に考えていません。 この辺りはRailsのURLHelperの考え方に沿って、 複数取得する場合は、resourceを複数系に、1件に絞って取得する場合は、 単数形にするようにすれば良いと考えています。
11.
目録 ・1クラス1Specファイルは冗長だ! ・APIのテスト ・FactoryGirl ・カバレッジ ・便利なGemを使おう ・その他
12.
Rails on Rspec plactice FactoryGirl バリデーションの通る1つのモデ ル定義を作成しておく。 テストドメイン毎の定義は行わな い、テストドメインのデータは1 つ定義したFactoryをロードして、 テストファイルの中でデータを変 更して作成するようにする。 こうすることで、テストとデータ の関連がすぐに把握出来るように なる。
13.
目録 ・1クラス1Specファイルは冗長だ! ・APIのテスト ・FactoryGirl ・カバレッジ ・便利なGemを使おう ・その他
14.
Rails on Rspec plactice カバレッジ SimpleCovを利用していることが前提の話です。 テスト環境のeager_loadを有効にし、 spec_helperまたはrails_helper (.rspecで指定している方)の一番 先頭でカバレッジ取得のための設 定を読み込むようにする。 こうすることで、Railsがオートロ ードする全てのコードがカバレッ ジ取得対象になる。 この方法だと、範囲を限定してテストを実行するときでも、 大くのファイルを読み込んでしまうので、カバレッジを集計 して可視化するCI環境のみで有効にするのが良い。
15.
目録 ・1クラス1Specファイルは冗長だ! ・APIのテスト ・FactoryGirl ・カバレッジ ・便利なGemを使おう ・その他
16.
Rails on Rspec plactice 便利なGemを利用する ・shoulda_matcher ・rspec_its ・grape-entity-matchers (grapeを利用している場合) ・rspec-request-describer ・json-spec 【よくある質問】 Q:このGem、もう全然メンテされてないんですけど… A:エンジニアなら、フォークするなりプルリクだして直せ! 程度にもよりますが、多少のバグならそれほど時間を欠けずに修正できるはずです
17.
目録 ・1クラス1Specファイルは冗長だ! ・APIのテスト ・FactoryGirl ・カバレッジ ・便利なGemを使おう ・その他
18.
Rails on Rspec plactice 他にもテストで考えることは 色々ある ・テスタブルな処理の書き方 ・テストの実行時間の問題 ・featureテストは開発するエンジ ニアが書くものではないのでは? ・fixtureの取り扱い etc... 調べれば何かしら出てくると思うので詳しくは話しません。
19.
良きテストライフを!
Download now