give IT a try

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

Rubyプログラマが一番よく使うテスティングフレームワークはRSpecのようです(2018年3月調べ)

はじめに

先日Qiitaでこんな記事を拝見しました。

この記事の中に以下のような記述がありました。

RSpecとは

Ruby用のテスティングフレームワーク。
Ruby on 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の比較記事です。

PR:Rails 5対応版のEveryday Railsが発売中です!

僕が翻訳している電子書籍「Everyday Rails - RSpecによるRailsテスト入門」が、先日Rails 5に対応しました。
「RSpecでRailsのテストコードが書けるようになりたい!」という人はぜひ読んでみてください。

本書の詳細については、こちらのブログエントリで紹介しています。