問題タブ [cedar-bdd]
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
ios - iOSアプリのbddテスト用に杉を設定するにはどうすればよいですか?
杉を設置しようとしていますが、うまく機能しません。githubの指示に従おうとしています。
xcode4.2を使用しています。
私がよくわからない最初のステップはこれです:
「プロジェクトでテスト用のCocoaTouch「アプリケーション」ターゲットを作成します。このターゲットにUISpecsなどの名前を付けます。」
a)杉でテストするときにメインアプリケーションにARCを使用できるかどうかわかりません。b)杉自体を作るのにARCを使うことはできないと確信しており、使いたくないと思います。c)仕様を格納するテストプロジェクトにARCを使用できるかどうかわかりません。d)仕様を格納するアプリケーションを作成するためにどのアプリケーションテンプレートを使用すべきかわかりません。
ARCとシングルウィンドウアプリケーションテンプレートを使用して、新しいメインアプリケーションを作成しました。空のアプリケーションテンプレートを使用して、ARCなしで仕様を格納する新しいアプリケーションを作成しました。
スペックを格納しているテストアプリケーションのplist.infoファイルを開くと、「メインnibファイルのベース名」のオプションが表示されません。だから私はこのステップを無視しています。
今、私はステップに来ます:
「Cedar-iOS静的フレームワークをプロジェクトに追加し、UISpecsターゲットをそれにリンクします。」
そこで、スペックアプリケーションのビルドターゲットに移動し、〜/ Library / Developer / Xcode / DerivedData / Cedar-borwneaogydgaodbtmfyaccykqxn / Build / Products / Debug-iphoneos/libCedar-StaticLib.aファイルをプロジェクトの「linkbinarieswithlibrary」に追加しました。 「ビルドフェーズ」タブの下の「」タブ。
次に、UISpecsターゲットのその他のリンカーフラグビルド設定に-ObjC、-lstdc ++、および-all_loadを追加しました。
次に、仕様を格納するアプリケーションの下で、TestSpec.mという名前の新しいファイルを作成し、このコードを追加して、失敗した仕様を取得しようとしました。
シミュレータでspecsプロジェクトを実行しようとすると、ARCの使用時にallocとautoreleaseがサポートされないというエラーが発生しました。これは、メインアプリケーションがARCを使用できないのに対し、スペックアプリケーションは使用できないことを意味していると思います。スペックアプリケーションを削除して、今回はARCを使用して再試行しました。
ARCに準拠するために、main.mコードから自動リリースプールとリリースコードを削除しました。
2つのビルドエラーが発生します。
1)main.m内:file://localhost/Users/nelsond/workspace/BIM360UIArchitecture/BIM360UIPrototype/BIM360Issues-IOS/BIM360Issues-IOS-Specs-ARC/main.m:エラー:字句またはプリプロセッサの問題:'Cedar-iOS /Cedar-iOS.h'ファイルが見つかりません2)TestSpec.m:file://localhost/Users/nelsond/workspace/BIM360UIArchitecture/BIM360UIPrototype/BIM360Issues-IOS/BIM360Issues-IOS-Specs-ARC/TestSpec.m:エラー:字句またはプリプロセッサの問題:'Cedar/SpecHelper.h'ファイルが見つかりません
私は次に何をデバッグするかについてかなり困惑しています。
ios - コマンド ラインから 'Cedar' 単体テストを実行中にエラーが発生しました
私はシダー テスト フレームワークを使用しており、コマンド ラインからテストを実行しようとしています。ビルドは次のエラーでクラッシュします:
テストは xcode から問題なく実行されますが、コマンド ラインから実行することはできません。何か案は?ありがとう
xcode - 名前空間 'std' に 'shared_ptr' という名前の型がありません
うまくいけば、これは他の誰かを助ける
Cedar BDD を使用して iOS プロジェクトをコンパイルしようとすると、ネームスペース 'std' エラー メッセージに 'shared_ptr' という名前の型がないため失敗し続けました。これは明らかに C++ エラーでしたが、Xcode が使用していた C++ ライブラリに shared_ptr タイプが定義されていなかった理由を理解できませんでした。ターゲットのビルド設定で選択可能な 2 つのライブラリが提供されていることを発見するまでは。
- libstdc++ (コンパイラのデフォルト)
- libc++
ios - Cedarを使用したiOSテストコントローラー
Cedarでコントローラーをテストしようとしていますが、なぜ機能しないのかよくわかりません。コントローラが表示されることはなく、viewDidLoadまたはviewDidAppearが呼び出されることもありません。これはCedarが意図していないことですか、それとも私の間違いですか?
uitableview - Cedar を使用してpresentedViewControllerの存在をテストする
テーブル行セルのタップを自動化したときに、表示されたビュー コントローラーが存在するかどうかをテストしようとしています。コントローラーのpresentedViewControllerが特定のタイプのクラスであるかどうかをテストしようとすると、常にnilになります。新しく提示されたView Controllerが提示されたView Controllerに移行していると仮定しているため、[controller presentedViewController]はnilです。
Cedar BDD テスト フレームワークを使用しています。自動化された「タップ」機能を提供するために、PivotalCore ライブラリをインストールしました。
仕様コードは次のとおりです。
最後のテストには、問題のコードが含まれています。私の質問は、presentedViewController が nil でないかどうかをテストする前に、1 秒か 2 秒待つ必要がありますか? もしそうなら、どうすればいいですか?
セルがタップされた後に実行されるコードは次のとおりです。
セルがタップされた後にこのコードが実際に実行されることを再確認しました。します。
ありがとうございました!
ios - Cedar の AFNetworking を使用した OHHTTPStubs
ネットワーク POST 要求の単純なスタブをセットアップするのに苦労しています。OHHTTPStubs のドキュメントやオンラインのその他のリソースからできる限りモデル化しましたが、何かが欠けているに違いないと思います。onStubActivation
メソッドによるロギングに基づいて呼び出されるスタブを確認したいと思います。私のテストは次のようになります。
クライアントは次のようになります。
ios - swift/objc プロジェクトとテスト ターゲットに関する Cocoapod の問題
私は主に OBJc プロジェクトで作業しています。テストは Cedar で行われます。Swift を含め始めましたが、テスト ターゲットで cocoapod フレームワークに問題があります
Cocoapods のバージョンは 0.39.0 です (ベータ版にアップグレードすると問題が増えるため、今のところ安定版を使用します) 私のポッドファイルは次のようになります。
私が現在抱えている問題は、テスト用にビルドするときに、メイン アプリ ターゲットのすべてのポッドで「シンボルが見つかりません」というエラーが発生することです。
私がやったこと:
- 両方のターゲットにポッドを追加しました (クラスが 2 回存在するというエラーが生成されます)
- アプリのターゲットにのみフレームワークを使用するように設定してみました
- link_with は、それらを両方のターゲットに追加した場合と同じ結果を生成します
テストポッドをテストターゲットのみに設定すると問題なく動作する完全な迅速なアプリがあるため、これはハイブリッドコードベースであるため、いくつかの問題が発生していると想定しています。