問題タブ [octest]

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 に答える
841 参照

unit-testing - otest を使用してテストをデバッグするときに、実行可能ファイルをテスト バンドルにリンクするにはどうすればよいですか?

私は Chris Hanson の優れた Xcode 単体テスト ガイドのハイブリッドのようなものを使用しています。

私のプログラムは (コマンドライン) アプリケーション (実行可能ファイル自体を使用してテストを実行することはできません) ですが、単体テストをデバッグできる必要があります。

だから私が持っているものは次のとおりです:

テスト バンドルとテストを作成します。新しいテスト ターゲットを作成し、バンドル ローダーとテスト ホストを設定します。メイン ターゲットをテスト ターゲットの直接の依存関係として追加します。新しいカスタム実行可能 otest を作成します。-SenTest selfMyTestBundle.octest、引数を追加します。環境に変数を追加DYLD_LIBRARY_PATHします。DYLD_FRAMEWORK_PATH

私の問題は、実行可能ファイルを実行してテストをデバッグしようとすると、テストによって参照されるクラスが利用できないことです。たとえば、クラス Foo のテストを作成すると、テストで Foo をインスタンス化するとすぐに、不正なアクセス例外が発生します。

Foo.m をテスト ターゲットに追加すると、これはなくなりますが、テストするすべてのクラスをテスト ターゲットとアプリケーション ターゲットに追加する必要はありません。

メインの実行可能ファイルのどこにクラスがあるかを otest に伝える何らかの変数を追加する必要があるだけだと思いますが、この引数の名前がどうなるかわかりません。

誰かがこれを修正するための正しい方向に私を向けることができますか?

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

objective-c - Xcodeにインラインテスト結果がありません

Rubyistスクリーンキャスト用のPeepcodesObjective-Cやアップル独自の技術文書のように、コードエディタにインラインで表示される失敗したテストのきれいな写真がどこにでもあります。

インラインで表示されるテスト結果
(出典:apple.com

テストターゲットを作成すると、右隅にある小さな赤いアイコンだけが表示され、問題が発生したことが示されます。それをクリックすると、ビルド結果が表示され、テスト結果を探し始めることができます。

誰かが何が悪いのかについての手がかりを持っていますか?

0 投票する
6 に答える
56046 参照

cocoa - 単体テスト内のコードがバンドル リソースを見つけられないのはなぜですか?

単体テストを行っている一部のコードでは、リソース ファイルを読み込む必要があります。次の行が含まれています。

アプリでは正常に実行されますが、単体テスト フレームワークで実行するpathForResource:と nil が返されます。つまり、foo.txt.

ユニット テスト ターゲットのCopy Bundle Resourcesfoo.txtビルド フェーズに含まれていることを確認しましたが、ファイルが見つからないのはなぜですか?

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

objective-c - 論理テストを使用して iPhone Nib を単体テストするにはどうすればよいですか?

ビュー コントローラーの単体テストは、iPhone 開発の非常に重要な部分のようです (この記事を参照してください)。ただし、これには Nib からコントローラーを初期化する必要があり、論理テストで適切に行うことは不可能であることがわかりました。

論理テストでのバンドルからのリソースのロード(この質問を参照)は正常に機能します。次のように Nibs をロードすることも可能です:

. ただし、ペン先にUIViewsのみが含まれている場合にのみ機能します。他のビュー (私は UITableView と UISwitch を試しました) では、otest がコード 138 で失敗します。

論理テストを使用して Nib をテストすることは可能ですか?

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

iphone - XCode を 3.2.3 から 3.2.4 にアップグレードした後、単体テストが機能しなくなった

XCode を 3.2.4 に更新したところ、単体テストが機能しなくなったことがわかりました。テストをデバッグできるように、Scott Densmoreの指示に従ってターゲットと実行可能ファイルを構成しました。

テスト ターゲット (LogicTests) のベース SDK を iOS4.1 に変更し、実行可能ファイル (otest) の otest スクリプトへのパスを更新しました。

ただし、アプリケーションを iPhone シミュレーターで実行しても、単体テストを実行すると常にクラッシュします。テストを実行しようとすると、コンソールに次のように表示されます。

あなたが提供できるかもしれない助けをいただければ幸いです!前もって感謝します。

乾杯、ゲオルグ

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

xcode - XCode、単体テスト、および実装ファイル

最終的に、単純な iPhone アプリケーションにいくつかの単体テストを追加することにしました。厄介なことが 1 つあります。それは、すべての依存関係をテスト バンドルに含める必要があることです。

しかし、私のやり方が間違っているのかもしれません。テストする必要があるすべての依存関係 (実装ファイル、フレームワーク) をすべてテスト バンドルに追加する必要がありますか?

テストが合格するまで、コンパイル、不足している依存関係の追加、コンパイルなどを行うために後でテストを追加するのは面倒ですが、それでも簡単です。しかし、おそらく最初に行うべきだったように、このテストを最初に行ったらどうなるでしょうか? 私のテスト バンドルにはすべての依存関係が設定されており、これを実際のアプリ バンドルに実装するときは、アプリがクラッシュしないようにすべての依存関係を追加する必要があります。ここに、テストがすべてパスするシナリオがありますが、実装ファイル (またはその他) が見つからないためにメイン アプリがクラッシュします。私は勤勉で、それらが作成されたときにそれらを追加することを忘れないようにできると思いますが.. 私は物事を忘れがちです.

アプリケーション テストはここで機能しますか?

だから、他の人がこのプロセスをどのように繰り返しているのか知りたいですか? より良い方法はありますか?どうにかしてメインのアプリ バンドルにリンクできますか?

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

ios - AssetsLibrary.framework をリンクした後、ロジック テストが -[MKTileCache init] () でハングする

私の iOS アプリには一連の単純なロジック テストがあり、buildot を使用して継続的インテグレーションで実行しています。

最近、AssetsLibrary フレームワークをメイン アプリとロジック テストの両方にリンクし始めました。ロジック テストには、一部のメソッドでフレームワークを使用するメイン アプリケーションのクラスが含まれますが、これらはロジック テストでは呼び出されません。

それ以来、ビルドボットの単体テストはプロセスのかなり早い段階でハングしています。これが発生したときに octest する Gdb'ing は、MKTileCache にある種のスレッド デッドロックがあるようです (私はどこにも使用していません)。

誰もそのようなものを見たことがありますか?

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

objective-c - Nib ファイルをメイン バンドルから名前でロードできない

私のnibファイルはテストターゲットに含まれているようですが、メインバンドルには存在しないため、メインバンドルから名前でnibを読み込んでいるときにアプリがクラッシュします。nib ファイルを含む正しいバンドルを見つけるか、パスを使用して nib をロードする必要があります。

誰かがどちらかの解決策を持っていますか? [NSBundle bundleForClass:[self class]]動作しません。nib ファイルとクラス ファイルが同じバンドルに含まれていないと思います

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

objective-c - Objective C での単体テスト -> sqlite データベースのコピー方法

テストスイートを起動して実行するのに少し苦労しています。基本的に、次のように新しいターゲットをアプリケーションに追加しました: Unit Testing Applications

DA クラスと sqlite-database に対してテストしたいので、次の抜粋を使用してデータベースをコピーします。

しかし、NSBundle は期待どおりにデータベースへのパスを返さないようです。

これに対する簡単な修正はありますか?この数時間で修正できなかったので、次は皆さんです。

どんな助けや提案も大歓迎です!

どうもありがとう!

トム

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

ios - UIUserInterfaceIdiom(ios)に依存するコードをテストする方法

XCodeを使用して単体テストを実行したいObjective-C[i-os]コードがいくつかあります。デバイスのタイプに応じて、以下を使用してさまざまなメタデータにアクセスします。

[[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad

私が抱えている問題は、単体テストを実行すると、この結果が常に真になることです。理想的には、テストの実行時に設定できると便利です。

私がそれを行うことができると思う方法は、デバイスチェックをカプセル化するクラスを作成し、それをテスト用にモックすることです。しかし、もっと良い解決策があるかどうかは一見の価値があると思いました。

参考までに、多くのリンクがある素敵なブログ投稿、Appleユニットテストガイドユニットテストサンプルコードプロジェクト