give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

【動画公開】RSpec初心者向けのオンライン勉強会を開いてみた (RSpecビギナーズ!! vol.1)

はじめに

先日、僕の突然の思いつきでRSpec初心者向けのオンライン勉強会を開いてみました。
題して「RSpecビギナーズ!! vol.1」です!

・・・といっても、おそらくほとんどの人が「え、いつそんな勉強会やったの?告知ページはどこ?」と思われるかと思います。
それもそのはず、だってこの勉強会は僕がTwitterで「RSpecの勉強会があったらいいな」とつぶやいている人に声をかけて開催した、個人的な勉強会だからです!

ちなみにそのツイートがこちらです↓


勉強会を開こうと思った理由

上のツイートをしてくれた「かなさん」ですが、以前から面識があったのかというと、全くありません!!
本当にたまたまツイートを見かけただけです。

じゃあ、なんでそんなことを僕がしたのかというと、以前から初心者向けのRSpec勉強会をやってみたいな〜と思っていたからです。
Twitterを見てると、よく「RSpecがわからない、動かない、難しい!!」といった嘆きの声をよく見かけます。
僕としては「いったいどこで困っているの?どのへんが難しいの??」と思って気になるのですが、ツイートだけ読んでも具体的にどういう内容で困っているのかがわかりません。
なので、「そういった人たちをつかまえて、RSpecで困っている具体的なポイントを聞き、その問題を解決してあげたいな〜」という野望(?)をここ数年ずっと持っていたのでした。

「RSpecがわからない」だけだと声をかけづらいのですが、かなさんの場合はそれに加えて「勉強会がないかな」というコメントも一緒に付いてたので、「やりましょう!!」と僕も声をかけやすかった、というわけです。
(それでも見ず知らずの人にいきなり声をかけるのは、たぶん僕ぐらいと思いますが 😅)

どんな勉強会だったの?

開催方式について

最初は普通の勉強会みたいに告知ページを用意して、参加者を募ろうかと思っていたのですが、告知ページを作るのが面倒だったのと、告知ページを作って募集をかけるとそれだけで日数が経過するので、さくっと開催するために参加者は「かなさんの知り合い」に限定させてもらいました。

ただし、完全にクローズドな勉強会にして、僕の知見がかなさんとその知り合いの人たちだけに閉じてしまうのはもったいないと思ったので、勉強会の様子を動画で撮って無料公開することを開催の条件とさせてもらいました。

また、コロナ禍ということもあり、直接会いに行くわけにもいかないので(そもそも地理的にも遠い)、Zoomを使ったオンライン勉強会としました。
開催時間は1時間半です。

f:id:JunichiIto:20200829164757j:plain
Zoomで画面共有しながら勉強会を開きました
当日の内容について

参加者のみなさんに事前にRSpecに関する質問を考えてきてもらい、それに僕がその場で回答する、という勉強会にしました。
なお、対象レベルは「RSpecの完全な初心者」です。

具体的に以下のような質問に順に答えていきました。

  • Q1. 関連モデルのテストについて
  • Q2. type: :model って必要?
  • Q3. Docker で save_and_open_page
  • Q4. モデルのテストがうまく動かない
  • Q5. テスト駆動開発の回し方について
  • Q6. 現場にシステムスペックを導入したい
  • Q7. テストの優先順位について
  • Q8. 他の spec を require する?しない?

動画はこちらです!

前述のとおり、勉強会の様子は録画してYouTubeに公開しています。(約30分 x 3本)
いろいろと初心者の方に役立つお話があると思うので、RSpec初心者の方はぜひチェックしてみてください!

なお、動画の解像度の関係で、動画を見る場合はスマホよりもPCやタブレットのような大きな画面で見ることを推奨します。

1/3「関連モデルのテストについて」「type: :modelって必要?」「Dockerでsave_and_open_page?」

  • 05:18 関連モデルのテストについて
  • 12:55 type: :model って必要?
  • 18:28 Docker で save_and_open_page?
2/3 「モデルのテストがうまく動かない」「テスト駆動開発の回し方について」

  • 00:00 モデルのテストがうまく動かない
  • 20:40 テスト駆動開発の回し方について
3/3 「現場にシステムスペックを導入したい」「テストの優先順位について」「他のspecをrequireする?しない?」

  • 00:00 現場にシステムスペックを導入したい
  • 11:03 テストの優先順位について
  • 20:37 他の spec を require する?しない?

声をかけてもらったらvol.2も開催するかも?

今回開催した「RSpecビギナーズ!!」ですが、タイトルに"vol.1"と入れているので、今後もニーズがあれば続けてみようかな〜と思っています。

開催の条件はこんな感じ(=vol.1の条件と同じ)です。

  • 勉強会の様子を動画に撮って公開しても大丈夫なこと
  • 時間は1時間から1時間半程度
  • なるべく実際のコードを見せてもらうこと(コードがないと空中戦になってしまい、実のある議論にならないため)
  • 参加者は1人〜5人程度(僕が顔と名前が覚えられるぐらいの人数で)
  • 初歩的な質問を歓迎します(あまり高度な内容だと僕も答えられないかもしれないので、事前にご相談ください)

上記の条件に合致する場合は無料で開催します!
もし「自分のお悩み相談も聞いてほしい!」という人がいたら、TwitterのDM等で気軽にお声がけください😃

なお、「会社のコードを見せるので動画は公開しないでほしい」「丸1日使って教えてほしい」といった場合は「お仕事」として有料で対応しますので、ご相談ください。

まとめ

というわけで、今回のエントリでは先日開催したRSpec初心者向けのオンライン勉強会について紹介してみました。

RSpec、というかRSpecに限らずMinitestで書くときもそうなのですが、テストコードの書き方は慣れるとサクサク書けるようになるのですが、意外と変な落とし穴やツールのクセみたいなものも多いので、最初の頃はたくさんハマって無駄に時間を溶かしてしまうことも多いと思います。

実際僕もたくさんハマった結果、今のスキルが身に付いたわけですが、完全に自力でがんばるよりも、誰かの助けを借りながら習得した方が絶対効率が良いです。
変にハマりまくると「テストなんて大嫌い!!」といったマイナスの感情を持ってしまうかもしれません。

テスト大好きな僕としては、できるだけ「テスト嫌い」の人を減らし、「テスト好き」な人を増やしていきたいと思っているので、今後もこういう活動をやっていけたら嬉しいな〜と思っています。

「RSpecでハマりまくっててテストが嫌いになりそう😢」という初心者の方は、ぜひ僕と一緒にお勉強しましょう😘

あわせて読みたい

過去の公開したテストコード関連のブログ記事やスライド、訳書のリンク集です。
初心者の方はこちらもぜひ参考にしてみてください。
blog.jnito.com
blog.jnito.com
qiita.com
leanpub.com