問題タブ [ocunit]

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 投票する
4 に答える
3807 参照

unit-testing - OCUnit:iPhoneシミュレーターを起動せずにテストを実行するにはどうすればよいですか?

iOS開発ガイド:ユニットテストアプリケーションをフォローしています。ただし、LogicTestsターゲットをビルド(Command + B)しようとすると(「ロジックテストの設定」のステップ8)、「選択した実行先はこのアクションに対して無効です」というエラーが表示されます。

アプリケーションターゲットをのターゲット依存関係に追加したのでLogicTests、Command + Uを使用して単体テストを実行できますが、これによりiPhoneシミュレーターも起動します。

時間とリソースを節約するために、iPhoneシミュレーターを起動せずにOCUnitテスト(ロジックテストとアプリケーションテストの両方)を実行することは可能ですか?

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

iphone - Xcode 4とOCUnitを使用してアプリケーションテストを実行する方法は?

OCUnitを使用してユニットテストを記述しています。GHUnitを試しましたが、私の場合には適していません。

コードがApplicationDelegateインスタンスに大きく依存しているため、アプリケーションテストを実行したいと思います。しかし、私は論理テストを実行する方法を理解することしかできず、アプリケーションテストを実行することはできません。

これはテンプレートのサンプルテストコードですが、テストが失敗したか(アプリケーションデリゲートがない)、テストコードがまったく実行されていません。

テストの設定方法についてアップルのガイドを見つけましたが、Xcode4用ではありません

0 投票する
5 に答える
7326 参照

objective-c - Xcode 4のSenTestingKit:非同期テスト?

私はSenTestingKitを使用して、クライアント側のコードとサーバー間の統合テストを行う方法を探していました。運がなかった。コードがメソッドで実行されると、オブジェクトが破棄されるようです。これは、非同期応答がセレクターを呼び出さないことを意味します。

質問:

  1. オブジェクトを破壊するのにふさわしいと思う時まで、オブジェクトをインスタンス化しておく方法はありますか?テストが完了した後?
  2. そうでない場合、テストが完了するまでブロックする(つまり、同期的に動作する)クラスを作成するにはどうすればよいですか?

参考までに、期待される結果がわかっているテストサーバーを実行しています。

私はかなりのグーグルをしましたが、これについて何らかの形で証拠を見たことがありません。他の人も興味を持ってくれると思います。

0 投票する
3 に答える
1143 参照

nsuserdefaults - OCUnit は NSUserDefaults をどこに保存しますか?

保存された NSUserDefaults を表示する簡単な方法?という質問を読みました。

アプリの .plist ファイルは見つかりましたが、テスト バンドルのファイルはどこにありますか?

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

xcode - 通知を使用する設計の単体テスト

通知を使用するロジックのテストに問題があります。特定の送信を強制することNSNotificationsについて読んだことがありますが、それは私が見ている問題に実際には対処していません。

[SomeObject PerformAsyncOperation]を作成し、NSURLRequestそれ自体を応答デリゲートとして設定します。応答の内容に応じて、SomeObject成功または失敗NSNotificationをデフォルトに投稿しますNSNotificationCenter

私のテストの問題は、PerformAsyncOperation呼び出された後、テストが応答の送信を待たないことです。代わりに、assertを続行します。これは、要求/応答が送信/受信/解析される時間がなかったために失敗します。

コードは次のとおりです。

の呼び出しとPerformAsyncOperation空のwhile (!operationCompleted)ループの後にスレッドをスリープさせてみました。どちらも機能しません。スレッドをスリープ状態にしてもアサートは失敗し、whileループは終了しません。success:また、assertをとに移動しようとしましたfailure:が、OCUnitは各メソッドがテストメソッドであることを期待しているため、3つのメソッドすべてをすぐに実行して終了します(NSURLRequest演習の要点である'の応答を待たずに! )。

任意のアイデアや洞察をいただければ幸いです。ありがとう!

0 投票する
9 に答える
8244 参照

ios - Xcode 4 単体テスト リンカ エラー

注: 「GHUnit を使用する」は、この質問に対する適切な回答ではありません。GHUnit は Xcode4 OCUnit よりも優れていると考える人がほとんどだと思いますが、それは私が求めていることではありません。別途評価いたします。

Xcode4でゼロから作成したXcodeプロジェクトがあり、作成時に「単体テストを含める」チェックボックスがオンになっています。以前のプロジェクトで開発したいくつかのライブラリも含めました。これらは、[ファイルを x に追加...] ダイアログを介してプロジェクトに追加され、アプリケーション ターゲット (テスト ターゲットではなく) にのみ追加されました。アプリケーションを実行すると問題なく動作するので、正しく設定されていると思います。また、このプロジェクトのために書かれたさまざまなクラスもいくつかあります。

私のテスト ファイルは、[AppName]Tests.h および .m という名前の標準的な方法でセットアップされています。
ヘッダーのコード:
#import < SenTestingKit/SenTestingKit.h >

実装のためのコード:
#import "[AppName]Tests.h"

これはまさに基本的な骨格です。他のファイルをインポートしない限り、他のプロジェクトでもこのプロジェクトでも問題なく動作します。このプロジェクトから別のファイルをインポートして使用すると、Xcode 出力ログに次のエラーが表示されます。
The test bundle at /Users/[Me]/Library/Developer/Xcode/DerivedData/[AppName]-dwuuuwcpmdqxqmgxomoniplwhlpb/Build/Products/Debug-iphonesimulator/[AppName]Tests.octest could not be loaded because a link error occurred. It is likely that dyld cannot locate a framework framework or library that the the test bundle was linked against, possibly because the framework or library had an incorrect install path at link time.

私はすでにそれを確認しました:

  1. 私が使用するすべてのフレームワークは、アプリ ターゲットとテスト ターゲットの両方について、「Link Binary with Libraries」に追加されています。
  2. テスト ターゲットは正しくビルドされるように構成されており、すべてのテスト メソッドが [スキームの編集...] -> [テスト] -> [テスト] に表示されます。
  3. この問題を除くすべての問題は解決されており、コンパイラ エラーはありません。
  4. ここで説明するすべての設定は 正しく設定されており、正しくテストされる私の他のプロジェクトと同じです。

これを引き起こしている可能性のあるものについて何か考えはありますか?

0 投票する
4 に答える
993 参照

iphone - コマンドラインでOCUnitのテストの失敗/成功をキャッチするにはどうすればよいですか?

私の期待: # ビルド成功 # および # テスト失敗 #

実際の結果: # Build Succeeded # のみ

コマンドラインで失敗/成功を取得するにはどうすればよいですか? [iphone、objective-c、xcode4、OCUnit]

私はOCUnitとXcode4の初心者です。プロジェクトを作成します: https://github.com/sanemat/HogeHoge これは xcode4 による scafold コードです。xcode gui でテストを実行すると、#Test Failed# が正常に表示されます。コマンドライン(jenkinsを使いたい)では、次のコマンドを使用します。

# Build Succeeded # そして完了しました。テストを実行して結果を取得したい。どのように?

編集:

BPOCUnitXMLReporterを見つけました。これはMacOS用です。iOSをフォークして調整しました。

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

objective-c - NSAssertアサーションの失敗が原因でテストが失敗する

iOSアプリのテストを書き始めたばかりです。Xcode4とOCUnitを使用しています。私は今、静的変数がすでに割り当てられている場合に例外をスローするコードのテストを書いています。たとえば、次のようになります。

私のテストではSTAssertThrows、インスタンスがすでに存在する場合に上記のコードがエラーをスローすることを確認するために使用します。問題は、このテストが次の場合に失敗することです。

そのため、動作がまさに私が望むものであるにもかかわらず、テストは失敗します。しかし、STAssertThrowsこれをキャッチするべきではありませんか?たぶん私はこのようにNSAssertを一緒に使うべきではありませんSTAssertThrowsか?

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

objective-c - XCode 4 での単体テストのリンク エラー?

XCode アプリケーションでクラスのロジック ユニット テストを作成したいと考えています。Xcode 4 では、Project Navigator でプロジェクト名をクリックし、下部から [Add Target] をクリックしました。Other で「Cocoa Touch Unit Testing Bundle」を選択し、新しいターゲットに「tests」という「product name」を付けて終了します。

テストしたいクラスは既存のアプリケーション ターゲットの一部としてコンパイルされるため、新しい「テスト」ターゲットについては、すぐに [ビルド フェーズ] タブに移動し、既存のアプリケーション ターゲットを唯一のターゲット依存関係として追加します。

次に、作成した tests.m ファイルに移動し、テストしたいクラスをインポートします (その下にReleasePlanManagerあり、そのメソッドの 1 つを呼び出します。しかし、リンカーは次のようなエラーで失敗します。

したがって、(私の理解では)アプリケーションターゲット(それが含まれている)を追加するだけで十分なはずですが、クラスが見つかりませんか?

どんな助けでも大歓迎です。ありがとう!

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

xcode - Xcode 4 で単体テストのサブセットを実行する方法

Xcode 4 では、スキーム機能が導入されています。これにより、プロジェクトにさまざまなスキームを作成できます。スキームのテスト項目の下で、実行するテストを選択できます。ただし、選択したテストだけでなく、すべてのテストが実行されていることがわかりました。単体テストのサブセットを実行するにはどうすればよいですか?

私の問題は、私のプロジェクトと単体テストが元々 Xcode 3 で作成され、Xcode 4 にインポートされたという事実に関連していると思われます。

この種の問題について以前に質問がありましたが、私の質問は特に Xcode 4.0.2 に関するものです。