問題タブ [ohhttpstubs]
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.
ios - AFNetworking での Cocoa エラー 3840
AFNetworking 2.0 と OHHTTPStubs を使用して単体テスト ケースを作成していますが、テストは常に次のエラーで失敗します。
応答エラー: 操作を完了できませんでした。(ココア エラー 3840)。
どうもありがとう!
以下は簡単なテスト Json (User.json) です: { "userId": "abc", "email": "ab@pant.com", "username": "usera" }
およびテスト ケース コード:
ios - Specta と OHHTTPStubs を使用した iOS 非同期単体テストは、失敗することはありません (失敗する必要がある場合)。
アプリのネットワーク コードを単体テストしようとしていますが、テストに失敗してすべてが機能していることを確認したいという問題がいくつかあります。事は、それは常に通過しているということです。問題になる可能性がある場合に備えて、Xcode6-Beta7を使用しています
テストには Specta を使用し、OHHTTPStubs を使用してネットワーク要求をスタブ化し、応答でステータス コードを返します。
これが私のセットアップとティアダウンのコードです
テストの次の部分 (問題のある領域) では、NSMutableURLRequest を処理するクラスのインスタンスを作成し、それが nil でないかどうかを確認します。
この最初のテストが機能し、次のテストでスタブが使用されます。私のスタブは 200 を返すはずなので、これは失敗するはずです。それが 400 に等しいことをテストしています。
ここで、AsyncBlock キーワードを使用して非同期テストを実行し、done() を使用して完了を通知します。私が気づいているのは、Xcode がテストが成功したことを報告していることですが、コンソールのログを見るとわかります
Test Suite 'All tests' passed at 2014-09-07 22:11:22 +0000.
Executed 95 tests, with 0 failures (0 unexpected) in 0.489 (0.816) seconds
ロギングを詳しく調べたところ、次のことがわかりました
だから今、私は混乱しています-ステータスコードが等しくないと不平を言っています-しかし、テストは成功しています!!!
私が何か間違ったことをしている場合、誰かが何か知っていますか?
役立つ場合、NLXApiBaseService クラスは、defaultSessionConfiguration を使用して NLXApiBaseService クラスを初期化するときに作成される NSURLSessionConfiguration オブジェクトから NSURLSessionDataTask を作成します。
ios - OHTTPS + AFNetworking 失敗応答のモック
現在、OHTTPStub を使用して、AFNetworking 呼び出しの応答をモックしています。AFNetworking 呼び出しは、成功応答または失敗応答のいずれかを返します。
「responseWithJSONObject」メソッドを使用してスタブを作成すると (OHTTPStubs に関して提供または説明された唯一の例)、AFNetworking 呼び出しの成功ブロックが常に実行されます。
では、AFNetworking メソッドの失敗ブロックを実行するには、どのメソッドを呼び出す必要があるのでしょうか。
OHTTPStubs の "responseWithError" メソッドは既に試しましたが、成功ブロックも失敗ブロックも呼び出されません。
ios - 「OHHTTPStubs/OHHTTPStubs.h」ファイルが見つかりません
libOHHTTPStubs
を手動で追加しましたが、エラー " OHHTTPStubs/OHHTTPStubs.h
" file not found が表示されます。
助けてくれてありがとう。
swift2 - OHHTTPStubs がホストをスタブ化していませんか?
iOSアプリケーションに独自のリクエストがある場合、OHHTTPStubsはリクエストをモックしませんか?
テストが実行される前にアプリが Alamofire リクエストを実行した場合、OHHTTPStubs は単体テストでリクエストをモックしません。
OHHTTPStubs 4.3.0 with swift support
Alamofire 2.0.2
テスト ファイル- 期待どおりに動作します
ただし、次を AppDelegate.swift に追加すると、機能しなくなり、代わりにサービスに対して実際の HTTP 要求が行われます。
後世に残された元の質問
更新:クリーンなプロジェクトで再試行したところ、期待どおりに機能したため、何か他のことが起こっているに違いありません。
最新の Swift 2.0 へのアップグレードでは、OHHTTPStubs はリクエストをスタブ化しておらず、代わりにパススルーされてライブで呼び出されています。
単体テストで短い例を設定しましたが、まだ通過しています。私は何が欠けていますか?
私は得る
Hello World! の代わりに
NSURLSession でリクエストを作成しようとしましたが、OHHTTPStubs は正しく機能しました。OHHTTPStubs/Alamofire の相互作用に何か問題があるように見えますか?
- 迅速なサポートを備えた OHHTTPStubs 4.3.0
- アラモファイア 2.0.2
ios - Cedar の AFNetworking を使用した OHHTTPStubs
ネットワーク POST 要求の単純なスタブをセットアップするのに苦労しています。OHHTTPStubs のドキュメントやオンラインのその他のリソースからできる限りモデル化しましたが、何かが欠けているに違いないと思います。onStubActivation
メソッドによるロギングに基づいて呼び出されるスタブを確認したいと思います。私のテストは次のようになります。
クライアントは次のようになります。
ios - Alamofire と OHHTTPStubs の連携を取得する
単体テスト用に OHHTTPStubs を Alamofire と連携するようにセットアップしようとしていますが、Alamofire を使用すると常にライブ ネットワークから読み込まれるように見えます。テスト ターゲットでホスト アプリケーションの使用をオフにし、OHHTTPStubs が最初に使用されるようにしました。
以下は、Alamofire からロードされた結果がライブ ネットワークからのものであるサンプル テストです。
サンプル プロジェクトへのリンク: https://www.dropbox.com/s/b0qdvjpk8t6r525/TestAlamoFireStubs.zip