Ruby on Rails開発のインターン (Day 14)

こんにちは、皆さん!

ゲーム漬けの週末が終わり(マジでずっとPUBG遊んでた笑)、4週間目が始まった。
今日は新しくデザインを変更するマップページで自分に何ができるかを見つけて作業に取り掛かれたらなって感じ。


  • トピック:
  1. capybaraとは何か?


  • 疑問:


  • 問題:
  1. capybaraでグーグルマップをテストする方法を探す
  2. 職場のプログラムにおいて、capybaraテストが何らかの原因で実行できない


  • 学習した内容:
  1. capybaraテストを使えば、クリックやフォームの記入といった様々なユーザーのとる行動を自動でプログラムで試すことができる


  • 今後やってみたいこと:
  1. capybaraテストに関する面白いチュートリアルを作る


  • リソース:
  1. GitHub - teamcapybara/capybara: Acceptance test framework for web applications
  2. Full-Stack Testing with Rails System Tests
  3. GitHub - learn-co-curriculum/intro-to-capybara


capybaraとは何か?

capybara(キャピバラ)と聞いて、まず頭になにが浮かびますか?
普通ならこれだよね↓↓
f:id:Coding_Studio:20180724072015j:plain


まあ、僕が紹介したいのはRailsにおけるcapybara(キャピバラ)なので、こっちが正しいね。
f:id:Coding_Studio:20180724072515p:plain


capybaraはジェムの一つでボタンのクリックやフォームの記入、ページを訪れるなどのユーザーがとる行動を再現して同じことをプログラムで試すテストを書くためのものだ。これはとても便利な機能で、実際にユーザーがたどるシナリオを想定してそれがうまくいくかを試せるシュミレーターのようなものなのだ。
***この種のテストはよく耳にする単体テストとは異なる***


このサイト上の下記の写真が分かりやすい。(一番上の層)
f:id:Coding_Studio:20180724080647p:plain


しかし、このようなテストはコードは書きにくいし、考えられるシナリオはいくつもあるのでとてもコストのかかるもの。その中で、いったいどういうシナリオをテストすべきなのかをしっかり判断しなければならない。
このサイト上の下記の写真からもわかるようにすべてのテストに占めるcapybaraテストの割合は少ないが、そのコストは高く、時間を取られる。
f:id:Coding_Studio:20180724082153p:plain

まとめ

今日は何時間かシニアのディベロッパーとどうやってマップをテストするのかに関して議論しあった。この新しいマップはいくつかプログラミングが絡んでくる機能がついているから、それらの機能がしっかり動いているのか確認するテストを書く必要がある。簡単に言うと、マップ上のマーカーをクリックするときにその機能が主に使われる。だから、これを可能にしてくれるテストの方法を探す必要がある。明日は手段を早いうちに見つけて、コードを書く作業に移れるといいな。


ご精読ありがとうございました。では、また次回まで✌



Day 15はこちら↓↓
programming-shop.hatenablog.com


Day 13はこちら↓↓
programming-shop.hatenablog.com