2012-03-05 7 views
0

iOSアプリケーション用にRestKitを使用するスタティックライブラリを作成したいが、RestKit呼び出しはスタティックライブラリのユニットテストでは機能していない。スタティックライブラリで使用するとRestKitが機能しない

私はここで完全に愚かな何かをやっていることはほぼ確実だが、私はこれが何であるかを把握することはできません。

iOSアプリケーションで静的ライブラリを使用して、必要に応じてiOSシミュレータでそれを実行し、動作します。

iOSアプリケーションでは対照的にRestKitは静的ライブラリで動作させるために行われる必要があるものがありますか?

私は、サンプルのXcode 4のプロジェクトhereを作成しました。

私のAPIを呼び出すコードは単純です:

+ (void)testRestKit 
{ 
    NSString* URL = @"http://0.0.0.0:3000/api"; 
    RKClient* client = [RKClient clientWithBaseURL:URL username:@"[email protected]" password:@"password"]; 
    [client get:@"https://stackoverflow.com/users/current" delegate:nil]; 
} 

私のテストは、ちょうど次のとおりです。

- (void)testExample 
{ 
    [MyLib testRestKit]; 
    sleep(10); 
} 

注:私はどこで、タイミングの事でした念のために睡眠を追加ユニットテストはRestKitにAPIコールを完了する機会を与えずに終了します。それは助けになりませんでした。

RestKit呼び出しが動作しませんが、目に見えるエラーがどちらかはありません。

更新:同様のことを行うに興味のある人は、Daniel JalkutのRSTestingKitを参照してください。本質的には、ここで提供される解決策が何を提供するのかをいくつかのクラスの中で提供するクラスです。あなたが起こるために何かを待っているとき、スレッドをスリーピング

+0

デリゲートを設定してコールバックを取得していないと、それが機能しないことをどのように知っていますか? –

+0

デリゲートがなくても、APIを提供するRailsアプリケーションでREST APIが呼び出されているかどうかを確認できます。 – dbarros

+0

入手しました。 (そのコメントを残して約1分後、答えはおそらく分かりました) –

答えて

1

がお手伝いしそうではありませんが、数回の周りに実行ループをクランキング試みることができる:

- (void)testExample 
{ 
    [MyLib testRestKit]; 
    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:25]]; 
} 

私は本当にに見ていませんこれは、それが助けになると確信するのに十分なほど徹底的に(または、なぜそうするのか、なぜ説明するのか)、それは試してみる価値がある。

+0

ありがとう、ジョシュ。それはそれだった。コールはRestKitに送られます。 GHUnitに切り替えると、イベントループと関係があるかどうか疑問に思っていました。これは、iOS初心者の方で、このシナリオでどうやって進んでいくかわかりませんでした。 – dbarros

2

あなたはこの質問をRestkitリストにも載せました。私はあなたのプロジェクトhttps://github.com/dbarros/RestKitStaticLibraryTestをフォークし、あなたのために修正しました:

2番目のプルreq https://github.com/dbarros/RestKitStaticLibraryTest/pull/2はrunloopを追加します。ジョシュ・キャスウェルと私は同じように考えていました。

ジョシュはすでに正しく解決策の問題を診断し、上記のそれを掲示し、私はすでに修正を犯したので、私は唯一の理由は修正して、プルリクエストのこれを言及しています。

+0

ここにあなたの助けをしてくれてありがとう、シェーンギター。 NSRunLoopが修正されました。 – dbarros

関連する問題