[iOS] ユニットテストとかMagical Recordとか

2012/09/25

こんにちは。きんくまです。
今回はとりとめもないCoreDataまわりの日記です。

MVCパターンの基本はModelにDBのロジックを組み込むことらしいので、
NSManagedObjectのサブクラスに挿入/検索/削除/更新みたいなメソッド作りました。

そんで、これがうまくいってるのかためしたいので、ダミーのコードを書いてみて、
合ってる、合ってないって目でみていたのだけれど、「あっ、これがユニットテストなのか」とここで気づきました。

実はちゃんとしたxUnitでテストコードを書いたことはないです、、。ハハ。
何ヶ月か前にテストってそもそも何なのよ?と気になり本を読んだりした。

これ読む限り、体系立ててやってはいなかったけど、近いことはやっていたみたい。
機能作って、テスト用のコード書いて合ってるか調べたり、実際に動くものを手でテストしたりとか。

それで今回良い機会なので、Objective-Cでユニットテストやってみたいなと思ったのです。

調べたところ、OCUnit、GHUnit、OCMockという単語が上がってきた。

>> GHUnitで単体テストをしてみよう – mixi Engineers’ Blog
>> GHUnitとOCMockでUnit Test効率化 – jarinosuke blog
>> A-Liaison BLOG: Jenkins を iOS アプリ開発に導入してみた (GHUnit編)
>> Unit Testing in Xcode 4 Quick Start Guide

OCUnit シンプル
GHUnit 高機能
OCMock ユニットテストとは違うモックオブジェクトというものを使ったテスト

全部理解しようとしても時間がかかるので、GHUnit + OCMockは後回しにして、
取り急ぎOCUnitで基本的な使い方を覚えてみようと思ってる。

そんで、調べてる途中で見つけたのだけれど、MagicalRecordというものがあるらしい。

>> MagicalRecord(git-hub)
>> Magical Record: how to make programming with Core Data pleasant « Yannick Loriot

なんでロゴが漢字の「棒」なのかは全くわからないのだけれど、CoreDataをActiveRecordパターンっぽく使うものらしい。
もっと簡単にいうと、CoreDataのラッパークラスみたいな。

ActiveRecordパターンって何なのか調べてみると、SQL文かかなくてもよくて、オブジェクトにプロパティ設定するみたいにDBいじれるって理解でOK?  たぶん。

APIのサンプル見た感じだと、「あれこれって、今自分で書いてるNSManagedObjectのサブクラスにメソッド設定するやつ、ActiveRecordがやってくれるからしなくてもよくね?」と思いましたです。

自分で書いてるのがマニュアルだとすると、ActiveRecord使ったやつはオートマですな。
なれるとこっちの方が、書くのは速そう。

LINEで送る
Pocket

自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

ページトップへ戻る