問題タブ [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.
objective-c - OCMock または Hamcrest で構造体を使用する
私は障害物にぶつかっていて、ここの素晴らしい集団精神が助けになるかどうか疑問に思っています. ObjC CocoaTouch では、構造体パラメーターを受け取り、構造体を返すオブジェクトをモックしようとしています。OCMock が毛玉を吐いているので、Hamcrest マッチャでラッピングしてみました。死ぬな。私がテストしている関数/メソッドは次のようになります。
私は次のようなコードを使用します:
それはちょっとうまくいきます。したがって、テストしているオブジェクトで、必要な編集を行って、緑色のバーを取得します...エラー..ビルド情報ウィンドウの緑色のボタン。テストに合格するはずだと確信している場合、アサーション失敗エラーが発生します。エラーは、メソッドが予期せず呼び出されたことを通知し、これらの構造体の値を疑問符としてリストします。Hamcrestマッチャーで構造体をラップしようとしましたが、どこにも行きません。私はデバッガーを分解する準備をしています。間違いなく何が問題なのかを教えてくれます。OCMock/Hamcrest と構造体で同様の問題を抱えている人はいますか? もしそうなら、これらのタイプを処理する最良の方法は何ですか?
objective-c - Objective-C のメソッド内部のオブジェクトを単体テストするにはどうすればよいですか?
これをどのようにテストするかを考えています。パラメータを受け取るメソッドがあり、そのパラメータのいくつかのプロパティに基づいて、別のオブジェクトを作成して操作します。コードは次のようになります。
私が確認したいのは、context.isValid が true の場合、dest で doSomething が呼び出されることですが、そのオブジェクトがメソッドのスコープ内で完全に作成されます。私はこれについて間違った方法をとっていますか?
iphone - OCMock で UIKit クラスのカテゴリ メソッドをスタブできるようにするにはどうすればよいですか?
アプリのテストで UITabBarController をモックしようとしています。テスト クラスの ocmock と共にインポートされる別のファイルの別の場所で定義されたそのクラスのカテゴリ メソッドがあります。私がしようとしているのはこれです:
しかし、テストがそのスタブ呼び出しに到達すると、次のようなエラーが表示されます。
ocmock が組み込みフレームワーク クラスのカテゴリ メソッドを認識できるようにするために、何か特別なことをする必要がありますか?
objective-c - OCMock で引数としてハンドルを受け入れるメソッドをモックするにはどうすればよいですか?
次のシグネチャに相当するメソッドをモックしようとしています:
テストでコードが辞書を適切に使用していることを確認できるように、小さな辞書を返すようにします。ただし、私が何をしても、OCMock は、どのようにスタブ化したかに関係なく、常にメソッドから nil を返します。エラーは、テストしているコードで nil として始まります。これらは、スタブしようとしたさまざまな方法です。
そしてどれも機能しません。OCMock はハンドルをスタブ化されたメッセージ引数としてサポートしていますか? もしそうなら、それを行う正しい方法は何ですか?
dependency-injection - 部分的なモックよりも依存性注入を優先しますか?
私はこのSOの質問を知っていますが、より一般的な用語で主題を扱っています.
依存性注入よりも部分モックの使用を優先する必要がありますか? 私の質問は、OCMock からの次の引用に基づいています。
anObject と同じ方法で使用できるモック オブジェクトを作成します。スタブ化されていないメソッドが呼び出されると、anObject が転送されます。スタブ化されたメソッドが、モックではなく anObject への参照を使用して呼び出された場合でも、モックによって処理されます。
これは、(プロパティの) 依存関係をコンストラクターに (またはセッター インジェクションを介して) 注入する代わりに、部分的なモックを使用してスタブ化できることを意味します。
iphone - OCMock の戻り値
出力が NSDate の timeIntervalSinceNow 戻り値に依存するメソッドのテストを作成しようとしています。特定のシナリオをテストできるように、テストで戻り値を指定したいと思います。
この OCMock オブジェクトが希望するものを返すのに非常に苦労しています。これが私のコードです:
これにより、「エラー: 'typeof の前に指定子修飾子リストが必要です」というエラーが生成されます。
何かご意見は?私は ObjC を初めて使用するので、その他の関連するヒントは大歓迎です。
ありがとう。
iphone - OCMockを使用してカテゴリメソッドを期待すると、「[NSProxydoesNotRecognizeSelector"...]」が生成されます。
NSURLConnectionの動作をテストしようとしているOCMockを使用しています。不完全なテストは次のとおりです。
デリゲートメソッドconnection:didReceiveresponse:であるカテゴリメソッドを使用してクラスをモックすると、次のエラーが発生します。
誰かがこれに問題がありましたか?
iphone - OCMock でクラス メソッドをスタブする方法は?
iPhone Objective-C ユニット テストで、NSUrlConnection の +sendSynchronousRequest:returningResponse:error: メソッドなどのクラス メソッドをスタブ化したいことがよくあります。
簡単な例:
これを実行すると、次のようになります。
これに関するドキュメントを見つけるのに非常に苦労しましたが、OCMock ではクラス メソッドがサポートされていないと思います。
たくさんのグーグル検索の末、このヒントを見つけました。動作しますが、非常に面倒です: http://thom.org.uk/2009/05/09/mocking-class-methods-in-objective-c/
OCMock内でこれを行う方法はありますか? または、誰かがこの種のことを達成するために書かれた巧妙な OCMock カテゴリ オブジェクトを思いつくことができますか?
cocoa - コア データの動的プロパティの問題を伴う OCMock
OCMock を使用して、一部の Core Data オブジェクトをモックしています。以前は、Objective-C 1.0 スタイルの明示的なアクセサーを使用してプロパティを実装していました。
コードを Objective-C 2.0 に移行したので、新しい @property 構文と、動的に生成される Core Data オブジェクトのメソッド実装を利用したいと考えています。
ただし、モックアイテムを作成すると、動的プロパティを処理していないようです:
エラーは次のようになります。
何か間違ったことをしていますか?@dynamic プロパティを使用してコア データ/オブジェクトをモックする別の方法はありますか?