Hatena::ブログ(Diary)

リンゴの水やり?(はてな) このページをアンテナに追加 RSSフィード

2009-01-30 金

[][]iUnitTest

iPhoneのUnit TestフレームワークiUnitTestを公開しました。会社として公開したのでプレスリリースなんか出したりしてます。


http://github.com/katsuyoshi/iunittest/tree/master

f:id:gutskun:20090130120835p:image

インストールはいたって簡単で、ソース一式を持って来たらそのディレクトリで'sudo ./setup'を実行するだけです。

XcodeにiUniTestアプリケーションテンプレートが追加されるので、それからテスト用のプロジェクトを作成します。*1

テスト用のクラステンプレートも追加されているので、わざわざimportしたりテスト用に設定をしたりという事は必要ありません。


テストはIUTAssertion.hに書いてる"ASSERT"から始まるマクロを使用します。

メッセージを入れる事も想定してますが、実装してません。exceptionを扱う物もありません。


大体の事はここちらのドキュメントを見れば分かるのではないでしょうか。


iPhoneソフトは、最初とにかく書いてみる、という事でゴリゴリ書いてましたが、ある程度肥大化してくるとテストしたい症候群にかられるようになり、iPhoneのUnit Test用フレームワークがないかなと検索してました。今の所2種類しか見つけていません。*2


SenTestingKit(いわゆるOCUnit)を用いるアプローチ

Xcodeに装備されていることもあって、iPhoneでUnit Testをしている方はこの方法を取っているのかな?と思ってます。

SenTestingKitについてはXCodeでTestingと題して書いたり資料を書いたりした事もありました。

が、エラーがレポートされるだけで、実際にどういう過程で異常になっているか追う事が出来ないというのがありました。

結果、NSLogを多量に忍ばせたりするはめになるので、没となりました。


rbiphonetestというRubyからのアプローチ

これは発想が素晴らしい。Rubyのテスティングフレームワークを用いようという物でRSpecObjective-Cのコードをテストなんかも出来る様です。

Rubyが好きそうだなというのが伝わって来ます。


が、';'を付けたり付けなかったり、タブを4個にしたり2個にしたりを行き来するのはかんべん願いたいという事で没になりました。




そうなると・・・

作るしかないでしょう、という事で作りました。

RSpec的なBDDで書けるのが良いんでしょうが、とにかく直ぐに動かしいたという事でBASICなスタイルにしました。


AppStoreに登録もしていないのに本末転倒な気もしますが・・・


名前は二転三転して結局iUnitTestにしました。*3


最後に

nobonさんからはアイコンを作成していただきました。

株式会社万葉の大場寧子さんからはReadMeの翻訳をしていただきました。

また、公開について何人かの方に相談に乗っていただきました。

この場を借りてお礼申し上げます。

*1テンプレートにまとめあげるのは昔やったWOの PBXStamperの経験が生きてる気がします

*2:まだまだあるのかもしれません

*3:その度にプロジェクト修正したりファイル名変更したりとかてんやわんやでした

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

Connection: close