問題タブ [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 - コアデータアプリケーションのテスト
findByAttribute
追加したインスタンスメソッドをNSManagedObject
どのようにテストする必要がありますか?
最初は、XcodeのCore Data Utilityチュートリアルで示されているように、プログラムで独立したCoreDataスタックを作成することを考えました。そして、そのドキュメントを検索したところ、 Core Data Fetch Request Templatesに出くわし、作成したメソッドを作成する代わりに、fetch request templateを作成する必要があると思いましたがentityName
、フェッチを使用して変数を変更できるようには見えません。テンプレートをリクエストできますか?NSManagedObject
すべてのサブクラスがそれを使用できるように、フェッチ要求テンプレートを作成できますか?うーん、でもそれでも必要entityName
で、メソッドを呼び出したサブクラスの名前を動的に取得する方法はないと思います。
とにかく、良い解決策は、本番のCore Dataスタックから独立して、テスト用のメモリ内CoreDataスタックを作成することであるように見えます。@Jeff Schillingは、メモリ内の永続ストアを作成することもお勧めします。Chris Hansonは、CoreDataを単体テストするための永続的なストアコーディネーターも作成します。これは、Railsがテスト用に別個のデータベースを持っている方法と似ているようです。ただし、@ iamleegは、コアデータの依存関係を削除することをお勧めします。
どちらがより良いアプローチだと思いますか?私は個人的に後者を好みます。
更新:私はOCHamcrestとPivotalLabのCedarを使用してコアデータを単体テストしています。以下のコードを書くことに加えて、私はターゲットにNSManagedObject+Additions.m
とを追加しました。User.m
Spec
あなたが私に渡された議論にキャストし(id)
fbId
findByAttribute
ない場合、私が得る理由を教えてくれれば
その後、ボーナスポイントを獲得できます!:)引数がであると想定されている場合、私NSNumber
はにをキャストする必要はないようです、そうですか?id
id
NSNumber
id
iphone - OCMock を使用してメソッド呼び出しの数を確認する方法
メソッドが「x」回呼び出されたことを確認する方法はありますか?
objective-c - OCMock でブロック期待値を使用する
GHUnit と OCMock を使用して、iOS アプリでいくつかのテスト作業を行っています。
そのため、それらを統合するのに苦労しています。
次のコードはうまく機能します。
しかし、[[[mock stub] andReturn:@"255"] capitalizedString]; を変更すると、の中へ
「理由: 'NSCFString' は '255' と等しいはずです。等しいはずです」というエラーが表示されました。
2 つのステートメントはまったく同じことを行うべきだと思います。私が間違っている?
iphone - iOS4およびXcode4/SDK4.3でのユニットおよびアプリケーションテストにOCMock1.77を使用する
iOS4およびXcode4/SDK4.3でのユニットおよびアプリケーションのテストにOCMock1.77を使用しようとしています。http://www.mulle-kybernetik.com/software/OCMock/にある静的ライブラリとしてOCMockを使用する手順に従いました。ユニットテストとアプリケーションテストは、OCMockがなくても正常に実行されます。
OCMockを追加してシミュレーター用にOCMockのテストスイートを実行しようとすると(単体テスト)、テストリグがコード134でクラッシュします。テストリグはデバイスに対して正常に実行されます(アプリケーションテスト)。コンソールを見ると、以下のメッセージが表示されます。これは、上記のURLの手順に従って-force_loadリンカーフラグを追加していないことを示しています。しかし、私は...何か考えはありますか?
私はこれを見ました:iOS 4でOCMock検証を使用してコード134でテストリグが異常終了しました。これは、この動作がバグであることを示唆していますが、OCMockテストスイートを実行しているため、同じ状況かどうかはわかりません。バグの場合、単体テストでモックを使用するための回避策はありますか?
TIA。
=====
コンソール出力:
iphone - Objective C-OC Mockの使い方は?
メソッドが呼び出されたときに文字列を返すことを想定したクラスがあります。モックオブジェクトを作成するにはどうすればよいですか。
メソッド「sayHello」が呼び出されたときにモックが@"Hello"を返すようにしたい
objective-c - Objective C & OC Mock - クラス メソッドをモックしますか?
クラスメソッドが呼び出されたかどうかを判断できる必要があります。OCMock でこれを行うにはどうすればよいですか?
iphone - OCMock を使用した NSWidowController のテスト
私は、OCMock を使用して applicationDidFinishLaunching デリゲートを単体テストする方法を考え出そうとしています。私の NSWindowController はここでインスタンス化されており、テストしたいと思います。ここに私のテストコードがあります:
テストを実行すると、次のエラーが表示されます。
「OCMockObject[URLTimerWindowController]: 予期されるメソッドが呼び出されませんでした: showWindow:-[URLTimerAppDelegateTests testApplicationDidFinishLaunching]」
ログに詳細が表示されます。
そのため、NIB の読み込みに失敗していることがわかります。では、単体テスト中にロードしたり、何らかの方法でロードをモックしたりするにはどうすればよいですか? OCMock のドキュメント、ユニット テストに関する Chris Hanson のヒント、および同様の動作をする WhereIsMyMac ソース コードを含むその他のリソースをいくつか確認しました。ウィンドウコントローラーをインスタンス化するための私のアプリケーションは次のとおりです。
どんなヒントでも大歓迎です。
unit-testing - OCMock スタブの戻り値はどのように変更できますか?
OCMock スタブにandReturnValueを初めて追加したとき、その戻り値は石に設定されているようです。例えば:
スタブ化されたメソッドは [testEntity update] で呼び出されます。しかし、スタブ化されたメソッドがvelocity1値を返すたびに、メソッドの戻り値を設定する2回目の試みは尊重されないと思います.
OCMock でこれを行う方法はありますか?
objective-c - Objective C - OCMock とスタブ?
オブジェクト全体をモックするのではなく、クラスの実際のオブジェクトを持ち、そのクラスのメソッドのみをモックすることは可能ですか?
オブジェクトが 1 つのメソッドを除いて実際のオブジェクトと 100% 同じように動作するようにします。
元: