Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テストコード未経験者が RailsでそれなりにRSpecがかけるようになるまでの話 /Inex...

ShinkuFencer
February 22, 2019

テストコード未経験者が RailsでそれなりにRSpecがかけるようになるまでの話 /Inexperience Rails developer ,Use Rspec

銀座Rails #6 にて登壇した際のスライドです。
https://ginza-rails.connpass.com/event/112094/

発表内に関しての話は下記
https://shinkufencer.hateblo.jp/entry/2019/02/22/235900

ShinkuFencer

February 22, 2019
Tweet

More Decks by ShinkuFencer

Other Decks in Technology

Transcript

  1. 9 プログラマとしてやってきたもの • Ruby on Rails (2.0) • Flash Lite

    1.1 • ActionScript 3.0 • C#(Unity) • Java (Android) • PHP (7.x)
  2. 10 プログラマとしてやってきたもの • Ruby on Rails (2.0) • Flash Lite

    • ActionScript 3.0 • C#(Unity) • Java (Android) • PHP (7.x) これだけやっているのに テストコードを書く機会に 触れていない
  3. 11 プログラマとしてやってきたもの • Ruby on Rails (2.0) • Flash Lite

    1.1 • ActionScript 3.0 • C#(Unity) • Java (Android) • PHP (7.x) 元々テストコードを書く 文化がなく テストコード?って何? というような環境だった 基本は人力のQAで デバッグしており そこで品質担保を 行っていた
  4. 12 プログラマとしてやってきたもの • Ruby on Rails (2.0) • Flash Lite

    1.1 • ActionScript 3.0 • C#(Unity) • Java (Android) • PHP (7.x) Flash Liteでは記述が 軽量化を重視するので テスト向けの実装が しにくい ActionScript 3.0も テストコードを書かない 文化圏でやっていたので 書くという発想がない
  5. 13 プログラマとしてやってきたもの • Ruby on Rails (2.0) • Flash Lite

    1.1 • ActionScript 3.0 • C#(Unity) • Java (Android) • PHP (7.x) ゲーム開発において テストコードを書く 事例があまりなく 書いてこない文化も 相まって書かなかった ※ゲームでも書くところ はちゃんとかいてます
  6. 14 プログラマとしてやってきたもの • Ruby on Rails (2.0) • Flash Lite

    1.1 • ActionScript 3.0 • C#(Unity) • Java (Android) • PHP (7.x) 1人プロジェクトだった ので各種テストフレーム ワークを使おうと思った のですが挫折 納期もタイトだったので ひたすら人力でテストし て難を逃れる
  7. 15 プログラマとしてやってきたもの • Ruby on Rails (2.0) • Flash Lite

    1.1 • ActionScript 3.0 • C#(Unity) • Java (Android) • PHP (7.x) チーム的にテストコード に対しての意識が薄く 書かないほうが開発の スタンダードだった 自分も書いてはいない 出自だったので書かずに 過ごしてきた
  8. 16 いままでのテストコードの感覚 • はじめての会社はテストコードというもの を扱う文化がなかった • テスターメンバーが充実 + 優秀だったので 人力テストでバグは潰せたし

    自身も念入りに手でデバッグしていた。 • 「テストは大事である」 という意識が芽生えたあとでも やるだけの工数捻出ができない 定石がわからないので、踏み切れなかった
  9. 17 そしていろいろなものを経て • Ruby on Rails (2.0) • Flash Lite

    1.1 • ActionScript 3.0 • C#(Unity) • Java (Android) • PHP (7.x) • Ruby on Rails (5.x) イマココ!
  10. 32 足回りを整える • いままではgithubのreadmeに書かれた 手順を実行する形式だったので bin/setup,bin/updateに可能な限り纏める • 今後の新規プロジェクトはRspecのルール を統一できるようにrspec.ymlをgem化 •

    新規のModelとControllerには必ずRspec を書くようにする • 他プロジェクトでCircleCIは使っていたの でRspecとrubocopが失敗したらCI失敗と みなす当たり前を敷く