2017-04-04 11 views
5

NSDocumentがファイルを作成して保存するテストケースを記録しようとしています(次に+が内容を再度確認して開く)。問題は、NSSavePanelを起動してXCTestCaseの記録が停止すると、テストケースを記録するときです。私は、セーブ/オープンパネルと対話するテストケースの例を検索しようとしましたが、私は運がなかった。XCTestCaseファイルを保存しますか? (NSSavePanelを記録する)?

XCTestCasesがNSSavePanelsとやりとりすることができるかどうかについて、誰かが私に詳細を教えてもらえますか?コード例が望ましいでしょうが、ドキュメントも素晴らしいでしょう!

答えて

-1

はいできます。

活用XCUIApplicationが

XCUIApplicationは最小限のAPIを持っていますが、いくつかのメソッドは、特別な注意を保証する:

-launch - デフォルトでは、新しいXCTestCaseテンプレートは、新規のインスタンスを作成し-setupの行を含めますXCUIApplicationを起動して起動します。 -launchが呼び出されると、以前に実行していたターゲットアプリケーションのインスタンスが終了します。つまり、デフォルトでは、追加するテストケースごとに、各テストメソッドの前にアプリが再起動されます。これを避けるには、一回だけ起動する特異なXCUIAアプリケーションへの共有参照を使用します。ただし、全体的なテスト時間を除いて、あまり利点はありません。

-launchEnvironment - 起動時にターゲットアプリケーションに渡されるカスタム環境変数を制御できます。これは、アプリが自動UIテストのターゲットとして実行されているかどうかを識別するために使用できるカスタム変数を設定するために使用できます(他のものの中でも)。これは便利なことですが、慎重に使用する必要があります。 UIテストは、ユーザーが同じコードを実行している場合を除き、あまり役に立ちません。

UI録音

Xcodeの7では、AppleはあなたがあなたのUIをステップ、あなたが編集しているものは何でも現在のテストケースメソッドであなたのために記録されたもののアクションを持つことができます録音UIテスト]ボタンを追加しました。これは理論的には素晴らしいとは言えますが、実際には、現在の実装がバグであり、信頼できないことがわかりました。

スローモーションで移動 - クリックやキーボードの押し込みが速すぎたり、速すぎたりすると、Xcodeによってスキップされることがあります。

予期しないエラー - 記録が単に機能しないことがあります。 NSSavePanelの[保存しない]ボタンをクリックすると、機能しないエスケープされたUnicode文字列が記録されます。多くの場合、録音は失敗し、以下のような一般的なエラーメッセージが表示されます。提案?あなたのテストケースを「一から書く」ための出発点として、控えめに記録を使用してください。

enter image description here

+0

おかげで、これは実際にシステムNSSavePanelと対話XCTestCaseを行うには何も答えないのですか? – Kyle

関連する問題