JUnit Lambda に寄付をしました #fundJUnit

@t_wada さんのツイートから知りましたが、JUnitのプロジェクトが援助を求めているそうです。

Crowdfunding JUnit Lambda

日本語での詳細な内容については、JUnitの開発が資金不足で行き詰まり。クラウドファンディングで寄付金を募集中 を見ていだくのがいいと思います。

JUnitと私

個人的にJUnitを真面目に使い始めたのは、TDDBCで使い方を教わってからだと思います。

その時教えていただいた渡辺さんが書かれたJUnit実践入門を読んで、Javaでユニットテストを書くにはどうしたら良いかを学ぶことが出来ました。

それからGroovyと出会い、Spock Frameworkに惚れてTDDBCのGroovyのTAをやったり、アジャイルサムライのイベントで紹介をしたりしてました。

現在の仕事では、PHPUnitScalaTestを使っています。

xUnit系テスティングフレームワークは、テストを書く際に覚えることが少なくて、ユニットテストの書き方を学ぶ際に、余計なことを覚えなくても済むのがメリットだと思います。

あと、モダンな言語であればだいたい備わっているので、言語を覚える際にもassertionの書き方を覚えればなんとか始められます。 それまでユニットテストを書く際の経験がそのまま言語を学ぶ際にも応用が出来るのが、xUnit系のテスティングフレームワークの良いところだと思います。

個人的にJUnitがもう少し頑張って欲しいのは、「パラメタライズドテストの書き方」、「失敗時のメッセージが分かりにくい」だと思います。

これはSpockを知ってしまってから、余計に感じるようになったと思います。

もちろんJavaの言語仕様として難しい部分もあると思いますが、出来ればpower-assertは入って欲しいと願ってます。

power-assertについては、日本語ではThe power-assert Leaves From Moratoriumがまとまっていると思います。

今回のFundingでどこまで機能が盛り込まれたり、改善されるかは経過を見守る必要があると思います。

Java8対応で特にDateTime APIでMatcherが早急に欲しい人は、AssertJを検討してみるのも良いかもしれません。

おわりに

opensslと同様の経緯をまさかJUnitも歩んでいるとは思ってもいませんでした。

普段使っていたり、過去お世話になったOSSがメンテナンスされ続けるのは、誰かの犠牲や善意によって成り立っているのだと感じました。

また、「コードを書く」以外の事で貢献出来る何かを改めて考えさせられました。

もし、JUnitを使っていたり、今後も使い続ける事になるのであれば、既にゴール金額に到達していますが、寄付を考えてみてはいかがでしょうか?