タグ

ブックマーク / yaakaito.hatenablog.com (11)

  • iOSのビューのテスト、GHVerifyViewの使い方と運用 - yaakaito's diary

    こんにちは!今日も元気にネイティブアプリを開発していますか?えっ、HTML5が話題?HTML5があればネイティブアプリは必要ない???現実的にはHTML5でネイティブに勝つもしくは同等のものを作るには10年早いと思いますね。 今回はGHUnitの機能の一つであるGHVerifyViewの使い方とその運用方法についてのお話です。 GHVerifyViewはビューをテストする機能で、その実態は画像のマッチングです。 ビューとかすぐ変わるし、テストとか無駄に終わることが多いしあんまりするもんじゃない・・・、という感じではありますが、アプリを開発をしていく上で案外便利に使えたり、サンプルになる画像をそのままチームにみせることができたり、覚えておいて損はない仕組みです。 使い方 設定 GHUnitの機能なので、GHUnitが必要です。 gabriel/gh-unit · GitHub Co

    efcl
    efcl 2012/07/22
    GHUnitの画面描画比較のテスト 利用できそうな場所
  • Objective-Cのテストでのモックとかスタブとか差し替えの話 - yaakaito's diary

    こんにちは!元気にiOS開発でテストを書いていますか???まだ書いていない人は、さっさと書きましょうね!!!今回はObjective-Cでテスト書く上でのモックオブジェクトとかのお話です。 OCMockというライブラリ使うのでCocoaPodsはインストールしましょう! 先にOCMockについて少しだけ 実際にOCMock使ってどうこうはちょっと先の話になってしまいますが、簡単にOCMockの説明だけしておきます。 Mulle kybernetiK -- OCMock Objective-Cのモック系のライブラリにはほかにもOCMockitoやExpectaなどがありますが、個人的にはOCMockが好きです。 有名なBDDフレームワークのCedarなんかでも、OCMock使うといいよ〜と言ってるので、そういう意味でもおすすめですね。 で、OCMockは何するの〜という話なのですが

    efcl
    efcl 2012/07/01
    OCMockを使ったテストのチュートリアル
  • ランダムテストライブラリ、NLTQuickCheck作った - yaakaito's diary

    HaskellにQuickCheckというランダムテストを行うライブラリがあって、これをObjective-Cでも使えるようにそれっぽいものを作ってみました。 それっぽいもの、と言っているのは完全に移植する気はなく、Objective-Cから扱いやすいようにインターフェイスとかはガンガン変えていこうと思っているからです。yaakaito/NLTQuickCheck · GitHubCocoaPods経由でインストールするのが簡単です。自分でコードからコンパイルするという場合にはARCを使っているのでその点だけ気をつけてください。依存ライブラリは今のところありません。 まだまだ作りかけなので、気になることがあったらドンドンissueなどに投げてください! そもそもQuickCheckって何 QuickCheckは、一定の規則に従った値をランダムに生成して、それを使って複数回(だいたい10

    efcl
    efcl 2012/06/29
    Objective-CのQuickCheckライブラリ
  • GHUnitで非同期テストな話 - yaakaito::Blog

    Objective-C, Test, iPad, iPhoneしばらく開発からはなれてましたがやっと帰ってきました!iOSと非同期テストな話 - yaakaito::BlogでOCUnitで無理やり非同期テストを書いてみましたが、GHUnitだともっと綺麗にかけます。フレームワークの支援が受けられる分、楽でいいですね。流れとしては prepare waitForStatusで待つ 非同期処理内でnotifyを呼び出して戻るという感じです実装を見た感じはiOSと非同期テストな話 - yaakaito::Blogで解説してる下の方(自分でがんばる)と似たような感じだったので、メインスレッドに行ってしまっても大丈夫です。 [self prepare]; dispatch_queue_t global_queue = dispatch_get_global_queue(DISPATCH_QUEUE

    efcl
    efcl 2012/06/11
    GHUnitで非同期のテスト書く方法について。
  • CocoaPodsを複数人で運用することを考えたときにリポジトリにあげるべきファイルで悩んだので試してみた - yaakaito::Blog

    Objective-C, iPad, iPhoneCocoaPodsを利用すると結構簡単にライブラリが管理できるんですが、こいつを例えばgithubとかにあげるときに、どのファイルはignoreしてしまってよいのか、みたいなのがよく解らなかったので試してみた。 前提CocoaPodsを構成する要素は Podfile Podfile.lock (pod install 時に作成される)Podsディレクトリ (pod install 時に作成される) プロジェクト名.xcworkspace (pod install 時に作成される)ライブラリのインストールは pod install プロジェクト名.xcodeproj でこのうち、PodsとPodfile.lockはignoreしてもよいんでは・・・と思ってたんだけど、コマンド見るからにxcodeprojに依存してそうなで不安になったので試した

    efcl
    efcl 2012/06/02
    cocoapodsでignoreするファイル
  • iOSのCookieをタイムスリップさせよう - yaakaito::Blog

    大体ネタ 前提NSHTTPCookieExpiresAn NSDate object or NSString object specifying the expiration date for the cookie.This header field is only used for Version 0 cookies. This header field is optional.Available in Mac OS X v10.2 and later.Declared in NSHTTPCookie.h. 和暦設定でタイムスリップしよう和暦設定にします NSDate *date = [NSDate dateWithTimeIntervalSinceNow:60*60*24]; NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperti

    efcl
    efcl 2012/05/14
    iOSのクッキーの有効期限を変更 NSHTTPCookie
  • iOSアプリのテストでテストコードからモック用のサーバー立てられるライブラリ作った - yaakaito::Blog

    Objective-C, Test, iPad, iPhone注意 ASIHTTPRequestしか試してない(ただのHTTPサーバーなのでいけると思うけど) GETしか動かないはず ドキュメントが整備されていない 現段階で使いたい人は全部自分で そのうちframework化する version 0.0.1くらいNLTHTTPStubServerNLTはNext-Level-Testingです、ちょっと厨二病感出してみました。何ができるかというと、HTTPリクエスト投げるテストとかとかで、Apacheを立ててファイルをおいておいてそれを取りに行く、みたいなケースがあると思います。けどApache立てるのもだるいし、環境変わったら構築が面倒ですし、できれば全部Objective-Cで書いた方が綺麗だし、ってことでテストコードからそれと似た機能を提供します。綺麗に設計されているアプリケーション

    efcl
    efcl 2012/02/28
    HTTPサーバになってモック的に使えるテスト用ライブラリ
  • TDD的にiOSアプリケーション開発してみる - yaakaito::Blog

    Test, Objective-C, iPad, iPhone(iOSのテストを書くとViewControllerがコントローラーになれる話 - yaakaito::Blog を先に見ておくと、何がやりたいか分かり易いかもしれません。)iOSアプリケーションのテストの書き方、難しいですよね。僕もよく分からないので手探り状態です。とりあえず、標準のOCUnit使ってTDDっぽいことしてみれば、何か叩き台になるかな?と思ったのでその過程を公開してみます。書くテストロジックテストだけです。後々アプリケーションテストもやる予定なのですが、というか一緒にやってたんですが、重すぎたので一旦ロジックテストだけです。ロジックテスト主体で書けるようにできる限りViewContollerと切り離してコードを考えています。ツッコミ大歓迎!(ロジックテストだけやるので、ビューに表示するところまで書いてません)リク

    efcl
    efcl 2012/01/18
    OCUnitを使ってTDDでiOSアプリ開発
  • Objective-Cでクラスメソッドからのレスポンスをモックに置き換えたい - yaakaito::Blog

    Objective-C, iPad, iPhone, Test, MemoOCMockが入っている前提で例えばsharedObject系のクラスメソッドから返ってくるインスタンスをOCMockを使って一部をモックしたいと思ったときどうするかOCMockだとクラスメソッドの置き換えがいまのところできないみたいなので、method_exchangeを利用する手順としては、method_exchangeで置き換えたメソッドのなかでOCMockのインスタンスを作って返してあげる #import "TestHoge.h" #import "Shared.h" #import "OCMock.h" #import @implementation TestHoge - (id)mockMethod { id mock = [OCMockObject mockForClass:[Shared class

    efcl
    efcl 2011/12/22
    OCMock、クラスメソッドの置き換えにmethod_exchangeを利用する。
  • CoreDataをUnitTestとかしたい - yaakaito::Blog

    Objective-CCoreData使った処理とかのテストを書きたい訳です。ある程度CoreData使ってなんとなく雰囲気理解できてる人向けに書いてます。下準備アプリに使われてるdbそのまま使うみたいな方法もあるけど、tearDownで掃除するとか面倒くさいし、モックみたいなの作れればいいんだけどなー的な。方法としてはアプリに使うデータモデルだけ引き抜いてきてメモリにManagedObjectContextを作ってみた。何回も同じの書くのはめんどくさいので、ベースにするクラス作っておけばいいと思う。 #import @interface CoreDataBaseTest : SenTestCase { NSManagedObjectContext *_managedObjectContext; NSManagedObjectModel *_managedObjectModel; NSP

    efcl
    efcl 2011/12/18
    CoreDataのテスト。 メモリにモデルを作ってテストする
  • ebiflyっていうiPhoneのWebデバッガを作ったよ - yaakaito::Blog

    JavaScript, Node.jsどうも、成人式に行けなかったのがちょっとショックですけど、まあ地元の子に連絡してみたら結構元気そうだったので満足です。というわけで、ebiflyです。エビフライですよ、エビフライ、おいしいですよね。https://github.com/yaakaito/ebifly簡単にいうとiPhone(じゃくともいいけど)のWebから ebifly.log("いえーい"); とかしてログを母艦のコンソールに送ったり、コンソールからiPhoneにJSを送りつけて実行するあれです。たまに似たようなというかほとんど同じものを見ますけど、なんかちょっとださいのでかっこよさにはすこーしだけ力を入れてみました!なんで作ったかNode.jsの味をしめたからですね。それだけです。あとこういうのあると楽じゃないですか。UIWebViewとかconsole.log("aaa")じゃみ

    efcl
    efcl 2011/01/09
    Node.js+socket.ioでJavaScriptをiPhone上で実行して結果をコンソールに返すエビフライ
  • 1