問題タブ [ocmock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1383 参照

objective-c - NSURLConnection デリゲートの単体テスト: 接続の偽装

私は気象アプリケーションを作成しており、すべての計算、データのフェッチなどを行う一種の気象モデルを作成しました。ViewController を作成する前に、モデルの単体テストをいくつか作成して、すべてが適切であることを確認したいと考えていました。正常に動作しています (天気が期待される形式で取得されている、天気が正しく更新されているなど)。

今、私は自信を持って単体テストを行い、次のように等しいかどうかをテストしたいと思います:

...しかし悲しいことに、母なる自然は急速に変化します。また、(訂正します)単体テスト中はインターネットに接続できないと思います(…?)(どちらでも構いません。)

そこで、私のお気に入りの Web サイトを検索したところ、次の質問が見つかりました。NSURLConnection デリゲートを単体テストする方法は?

とても参考になりましたが、質問があります。次のような NSURLConnection デリゲート メソッドを呼び出すメソッドを呼び出すと、

...モデル (つまり、NSURLConnection デリゲート メソッドを実装している myBeautifulWeatherModel) のデータをフィードするにはどうすればよいですか? モデルは、このデリゲート メソッドでデータを受け取ると、JSON 解析を実行します。

私が最初に考えたのは、Wunderground から返された JSON データを取得し、いくつかのキーを変更して、期待されるデータと一致するようにし、それをフィードすることでした。しかし、問題は、その応答をどのようにフィードするかということです。

NSURLConnection が 3 つの必須デリゲート メソッドを呼び出すことを理解しています。次のことを「偽造」する必要があるように感じます。

しかし、繰り返しになりますが、どのようにそれをフィードして、このモデルにインターネットに接続されていると思わせるかについて、少し混乱しています。

0 投票する
2 に答える
7330 参照

objective-c - OCMock for iOSでプライベートプロパティをどのようにモックアウトしますか?

テストするクラスの.mファイルで宣言されているプラ​​イベートプロパティがあります。これをClassUnderTestと呼びましょう。ClassUnderTestは、ClassToBeMockedのインスタンスをインスタンス化します。OCMockを使用してClassToBeMockedのインスタンスをモックアウトし、それをClassUnderTestに割り当てるにはどうすればよいですか?

0 投票する
2 に答える
2386 参照

objective-c - OCMock: オプションのメソッドを除外してプロトコルをモックする

iOS アプリのテストでモックを作成するために OCMock を使用していますが、すべてのオプション メソッドを実装していないプロトコルのモックを作成したいと考えています。

私が何を意味するのか明確でない場合...ここにいくつかのコードがあります:

0 投票する
1 に答える
650 参照

objective-c-blocks - ブロック引数を持つスタブ メソッド

ブロック引数を持つメソッドをスタブしようとしています。

ブロックはシンプルタイプです。

実行すると、次のエラーが表示されます。

ブロック引数が と互換性がないよう[OCMArg any]です。このメソッドをスタブする方法はありますか?

0 投票する
2 に答える
940 参照

objective-c - ARCでid __autoreleasing *からvoid **にキャストする方法は?

ID __autoreleasing * から CFTypeRef * (void **) にキャストしようとしています。

私はもう試した:

しかし、自動解放プールが空になるとコードがクラッシュします。

ARC 環境で void** に変換するにはどうすればよいですか?

0 投票する
2 に答える
1223 参照

objective-c - int または bool を OCMock の「andReturnValue」引数に直接渡すことができないのはなぜですか?

私はやろうとしていた:

しかし、それは私にこの警告/エラーを与えました「「BOOL」(別名「signed char」)をタイプ「NSValue *」のパラメーターに送信する互換性のない整数ポインター変換」

それを回避するために私が理解できる唯一の方法は、次のことを行うことでした:

しかし、それは私のテストコードが非常に冗長に見える..変数を設定することなく、これをすべてインラインで行う方法はありますか?

0 投票する
2 に答える
3027 参照

objective-c - UITextFieldでアクションを単体テストします

単純なif条件が満たされると、「完了」がタップされたときにキーボードをドロップするターゲットが追加されます。

iOS5でOCMockとOCUnitを使用しています。UITextField単純な入力に合格し、その上で完了ボタンをタップすることをシミュレートして、それresignFirstResponderが発生する(または発生しない)ことを確認できる単体テストを作成するにはどうすればよいですか?

0 投票する
0 に答える
733 参照

frameworks - フレームワークへの OCMock の追加

最初に少し背景を説明します。私は現在、ユニバーサル フレームワークのいくつかの ocunit テストを作成しており、フレームワークのネットワークの側面をテストするために OCMock を追加する必要があります。こちらの OCMock の手順に従い、参考としてサンプル プロジェクトをダウンロードしました。ビルド段階でライブラリを使用したリンク バイナリに libOCMock.a を追加し、ヘッダーの場所をヘッダー検索パスに追加し、リンカー フラグを次のように設定しました。

  • テストを実行したときに表示されるエラー メッセージは次のとおりです。

ld: 73 duplicate symbols for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)

どんな助けでも大歓迎です

0 投票する
2 に答える
2940 参照

objective-c - OCMockを使用したスタブによるメソッドの上書き

レベルが完了した後にタイマーオブジェクトが停止することをテストしようとしています。次のコードがあります。

..。

prepareLevelメソッドはタイマー値をリセットし、その値に対して「start」を呼び出します---したがって、advanceLevelが実際にタイマーを停止することをテストするには、prepareLevelメソッドを上書きする必要があります。

したがって、単体テストでは、次のことを行いました。

その結果、XCodeは「testItStopsTheTimer(Gametests)が失敗しました。Game-0x12383060のサブクラスフォワーダーになりました......」と表示されます。

それで、既存のメソッドをスタブして、それを無に置き換えることはできませんか?

0 投票する
1 に答える
677 参照

ios - 静的メソッドでクラス呼び出しを OCMock することは可能ですか?

OCMock を使い始めたばかりなので、ご容赦ください。ドキュメントと多数の例を調べてきましたが、まだ決定的な答えを見つけていません。たとえば、静的メソッド内で init 呼び出しをモックアウトすることは可能ですか。

コードを変更せずに CTTeleInfo オブジェクトをモックアウトすることは可能ですか?