tryプログラミング、リモートワーク、田舎暮らし、音楽、etc.2018-03-09Rubyプログラマが一番よく使うテスティングフレームワークはRSpecのようです(2018年3月調べ)Rubyはじめに先日Qiitaでこんな記事を拝見しました。この記事の中に以下のような記述がありました。RSpecとはRuby用のテスティングフレームワーク。railsには標準でminitestが搭載されているが、より多く使われているのはRSpec(主観)最後に書いてある「主観」がちょっと気になりますね。僕もたしかにそんな気がするのですが、僕の考えもやっぱり主観でしかありません。そこで、Twitterを使ってアンケートを採ってみることにしました。「一番よく使っているテスティングフレームワークはどれですか?」というアンケートです。結果はRSpecが77%で(やっぱり)1位!投票結果は以下のとおりで、RSpecが1位(77%)となりました(主観どおりでしたね)。ベタなテーマですが、あらためてアンケートしてみようと思います。続いて、minitestが2位(14%)、test-unitが3位(6%)となっています。投票数は322票と、まあまあ集まったので、それなりに信頼できる数値なんじゃないかと思います。回答してくれたのはおそらく日本人が多いと思うのですが、できたら投票した人の国の分布も見たかったですね。すると「日本では特にRSpecの利用者が多い」みたいな分布になっているかもしれません。各フレームワークに対する個人的な感想ところで、参考までに、アンケートの選択肢に上げた各フレームワークについて、個人的な感想をつらつらと書いてみます(あくまで個人の感想です)。RSpecについて僕も一番よく使うのはRSpecです。仕事で書くテストコードはほぼRSpecですね。RSpecを使う理由は「最初からいろんな機能が全部入ってて便利だから」です。テストコードのここだけを共通化したい、とか、モックで少し凝ったことをやりたい、みたいなときにRSpecの標準機能でほぼ完結するのが便利だな~と感じています。ネット等では「構文が嫌い」という意見をよく見かけますが、僕自身は特にRSpecの構文が嫌だと思ったことはありません。minitestについて次によく使うのはminitestです。minitestはごくごく簡単なRubyプログラムの動作確認をしたりするときに使います。デフォルトでRubyにインストールされるので、すぐに使えて便利です。そうそう、僕が執筆した「プロを目指す人のためのRuby入門」で使っているのもminitestですね。大型本この商品を含むブログを見るただ、RSpec並みに凝ったことをやろうとすると、プラグインをたくさん入れたり、継承やらモジュールやらを駆使したりすることになるので、業務レベルのテストコードではminitestは使いません(僕の場合は)。test-unitについてtest-unitはあまり使うことがないですねえ。「test-unitもデフォルトでRubyにインストールされる、minitestみたいにシンプルに書ける、なおかつminitest以上にデフォルト機能は豊富」という特徴はあるのですが、Railsの標準テスティングフレームワークがminitestだったり、機能豊富といってもRSpecの方がさらに上だったりするので、わざわざtest-unitを選択する動機がなかったりします。あと、ドキュメントやネットの情報の少なさも気になります。使い方を調べるのに毎回コードを見に行くというのも、ちょっと億劫に感じます(もちろん、コードを読むことは大事ですが)。注意:アンケート結果=テスティングフレームワークの優劣ではないテスティングフレームワークについては、どれが良くて、どれが悪い、という話ではなく、あくまで「適材適所」の話だと思っています。僕の場合はそのときどきのニーズに応じて、RSpecとminitestを使い分けています。このアンケート結果は別にフレームワークの優劣を示しているわけではない、という点に注意してください。まとめというわけで、この記事ではTwitter上で実施した「Rubyのテスティングフレームワーク・アンケート」の結果を紹介しました。他のRubyプログラマがどんなテスティングフレームワークを使っているのか、気になっている人の参考になれば幸いです。あわせて読みたい過去に書いたRSpecとminitestの比較記事です。「RSpecでRailsのテストコードが書けるようになりたい!」という人はぜひ読んでみてください。本書の詳細については、こちらのブログエントリで紹介しています。はてなブログPro株式会社ソニックガーデンで働くRubyプログラマ。2017年11月に「プロを目指す人のためのRuby入門」を出版。blog)はてなブログをはじめよう!JunichiItoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。