2013年12月15日日曜日

javascript-mochaのskeletonを作ってみた #TddAdventJp

はじめに

このエントリは、TDD Advent Calendar 2013の15日目の参加エントリです。
14日目は、@jeffsukeさんの Objective-CとTDD です。
16日目は、TDDBCでもお世話になっている、a-suenamiさんのTDDが僕に教えてくれたこと #TddAdventJpです。

きっかけ

作ろうと思ったきっかけは、東京Node学園祭2013に参加した時にしたLTです。

東京Node学園祭2013 に参加してきました #nodefest
LT資料 #nodefest 2013

Node.jsを本格的に学びたいと思っていた時だったので、まず何から始めたら良いのか考えてました。
そこで、考えたのはTDDBCの逆をやってみるということです。
TDDBCでは言語はそれなりに知っているけど、TDDをどのようにしたら良いのか分からないという人を対象にしています。
今回の私は、TDDをどのように進めていくのかを知っているが、フレームワークがよくわからないという状態です。
ですので、まずはskeletonを作ってそこから始めるということを考えました。

power-assert

個人的な希望として挙げていた twada/power-assert を軸に他のskeletonを参考にGruntのpluginを選びました。
Gruntからmochaを実行するpluginは、いろいろ試してみてgrunt-mocha-cliを選択しました。
初めpower-assertが利用しているespowerをGruntから利用するpluginについては、grunt-espowerを選択してみましたが、@t_wadaさんからespower-loaderを試してみては?と提案されましたので、試したところGruntfileもスッキリしました。
ありがとうございます。

今回、作成したskeletonはこちらです。 -> tddbc/javascript-mocha

これで、mochaを使ってTDDを始める下地が出来ました。
まずは、power-assertを使って過去のTDDBCのお題を実践してみようと思います。

出来れば、このskeletonをYeomanから呼び出せるgeneratorを作ってみようと考えております。

最後に

新しい言語、新しいフレームワークを知るには、学習テストをこなすことが大切だと思っています。
その言語のテスティングフレームワークを知ることが、その言語を習得するには最適だと教えていただいた事がありました。
TDDBCの良い特徴の一つに、違う言語でもお題が一緒なので、同じコンテキストでコードを読むことが出来る事だと思っているので、それを活かして学んで行ければ理解も深まると思います。

もし、TDDで別の言語を学ぶ際には、http://devtesting.jp/tddbc/を覗いてみてはいかがでしょうか。
過去の募集内容に言語が書かれていると思いますので、そこには、始めるために必要なことがおおよそ見つかると思います。
そして、https://github.com/tddbcには各言語のskeletonが用意されています。
あとは、TDDBCに参加された方々が公開されているレポジトリもありますので、見つけてみてください。

私もTDDBCのNode.jsの希望者が増えた際にもサポート出来るようになりたいと思いますので、今後共よろしくお願いします。