Cocoa GUI をどのようにテストしますか?
-
23-08-2019 - |
質問
Cocoa プログラムの GUI 用のテストをいくつか書きたいと思います。
Cocoa アプリ用の優れた GUI テスト フレームワークはありますか?私が見つけた唯一のことは、 ビシャビシャ押しつぶす, 、2.400ユーロで、私の予算をはるかに超えています…
何か案は?どうやって あなた Cocoa GUI をテストしますか?
解決
それは、「Cocoa GUI のテスト」が何を意味するかによって異なります。
昔のようなツールが必要な場合 仮想ユーザー MPW に含まれているツールでは、それらはほとんどありません。Squish や Eggplant などのツールについて説明します。
書きたい場合は 単体テスト アプリケーションのヒューマン インターフェイスについては、「」に従うことをお勧めします。信頼しますが、確認してください「あなたがいる場所に近づいてください」 信頼 (フレームワークに従って) 適切な接続を行っている限り、ユーザーはフレームワークと適切に対話できます。つまり、テストの大部分は次のように行うことができます。 検証中 モデルとコントローラーのコードがビューに正しく接続されています。
私のウェブログでは、これを特に Cocoa で行う方法の例をいくつか書きました。 target-action で構築されたユーザー インターフェイスのテスト, 、および 1 つ Cocoa バインディングで構築されたユーザー インターフェイスのテスト. 。(もちろん、2 つのテクノロジーは排他的ではないことに注意してください。Cocoa バインディングを介して管理されるテーブル ビューでドラッグ アンド ドロップを実行したい場合は、データ ソースと、おそらくターゲット アクションを介して接続されたデリゲートも必要になります)。
私が単体テストを作成しないのは、一般に、スーパービュー内のコントロールの位置や種類です。ただし、場合によっては、それを正しく理解して維持することが重要です。その場合は、コントロールの適切なプロパティをクエリし、標準のアサーションを使用して検証するだけです。
私が 事実上決してない 「イベントをシミュレート」するためのコードを書き込むことです。私が今までに最も近いのは、偽のドラッグ情報オブジェクトを構築し、それをアウトラインビューデータソースに渡して、ドラッグが正しく対処されるようにすることです。
他のヒント
また、あなたがに(簡単に)ことができますプログラム的にキーイベントを送信し、ユニットテストでから実行ループを実行し、それがOS XとiPhoneの両方でユニットテストをサポートしています。
私はあなたへの可視性とココアのGUIとの相互作用を与え、古典的なGUI自動化ライブラリーを作成するために、他の人の間で、アップルのアクセシビリティAPIを使用して、オープンソースのPythonパッケージを作成しました。 PyATOMホームページ
最新CocoaCastポッドキャストは、イアン・ディーとのインタビュー「ルビーとスクリプトGUIテスト」の著者を持っています。あなたは CocoaCastする
で詳細を調べることができます