問題タブ [xctestcase]

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

xctest - IOS UI テスト - カメラとファイル チューザーを開くためのテスト ケースの作成方法

XCTest フレームワークを使用して IOS のテスト ケースを作成しています。ユーザー プロファイルを設定するための写真を選択したいのですが、これには次の 2 つの方法があります。 1. カメラを使用して画像をキャプチャします。2. ファイル チューザーから画像を選択します。

次の問題があります: 1. シミュレーターでこのテストを実行しています。では、カメラにアクセスするにはどうすればよいでしょうか。2. [フォト アルバムで選択] をクリックして、ページ ファイルの選択ページを開くことができます。ただし、ページ ファイル チューザー ページのタップを検出できません。

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

2行目でエラーが発生します:NSInternalInconsistencyException無効なパラメーターが満たされていません

上記のケースに関するドキュメントは 1 つも見つかりませんでした。

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

ios - モックUIViewControllerに手動でインスタンス化した後、UIViewがnilになるのはなぜですか?

UiViewControllerXCUnitTests で s をテストしています。

UIViewControllerメソッド呼び出しをキャプチャするために、 をモックする必要がある場合があります。たとえば、performSegue呼び出されたかどうか。

私がテストするメソッドの 1 つ ( などviewDidLoad) が IBOutlet にアクセスすることがあります。カスタム モック サブクラスを作成し、mockViewController.textfield = UITextField()すべてがうまく機能すると言うと。

UIViewただし、 aまたは aを手動でインスタンス化したい場合、 a の初期化子がnil を返すことはできませんがUIStackView、変数はまだ nilです。UIViewなんで?

たぶん、これはUIViews とUIStackViews が固有のコンテンツサイズを持たないことに関係していますか? これを修正するにはどうすればよいですか?

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

macos - テスト ターゲットのアセット カタログからの NSImage

単体テストのターゲットは、一部のテストで使用する画像リソースを読み込む必要がありますが、読み込みに問題があります。

  1. テスト ターゲット内にアセット カタログを作成しました。
  2. 新しい画像セットリソースをカタログに追加し、[デバイス] の [Mac] ボックスをオンにして、そのソース画像を両方の解像度 (@1x と @2x) に設定しました。

ここに画像の説明を入力

  1. テスト ターゲットの「バンドル リソースのコピー」ビルド フェーズを確認しましたが、アセット カタログが含まれています。

  2. アセット カタログとイメージ セットのターゲット メンバーシップを確認しましたが、実際にテスト ターゲットです。


テストを実行するとき、以下のようなコードを使用して画像を読み込もうとしています:

...しかし、ガードは失敗します。

私も試しました:

...しかし、最初のガードは失敗します (リソース パスを取得できません)。

両方の形式を試しました

と:

も試しBundle.urlForImageResource(_)ましたが、失敗します。


同様の質問と回答を見たことがありますが、それらはiOSまたはアプリ(メイン) バンドルのリソースに適用されます。

私は何が欠けていますか?


アップデート:

その間、テスト イメージをスタンドアロンのイメージ リソース (アセット カタログを使用しない) として追加し、次のコードでロードすることで問題を回避しました。

この場合、複数の解像度をサポートする必要はありません (私の画像は画像処理アルゴリズムのソースです。必要な最高解像度であると既に想定されています)。サポートしたとしても、.pngから切り替えるだけです。 .tiffに、私は推測します。

問題は、イメージをロードするバンドルを指定できる'sに似たイニシャライザNSImageがないことです(2 番目の引数)。UIImageinit(named:in:compatibleWith:)

代わりに、特定のバンドル ( 以外main) にリソース URL を作成し、そこからイメージをインスタンス化するように依頼することもできます (上記のように) が、これはアセット カタログと互換性がないようです。詳細情報は大歓迎です...

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

swift - 正しくないセル数を返す XCTest Element クエリ数

Xcode 9、Swift、XCUI テストの使用

テーブルに表示される結果の数をテストしようとしていますが、結果の 2 番目のセット/ページがテーブルに読み込まれると、正しくないセルの数/カウントが返されます。

表には 1 ページあたり 50 個のセルがあります。最後のセルが読み込まれると、次の 50 個のセット (または最大 50 個) が読み込まれます。

私のテスト ケースでは、ページに移動すると、最初の 50 個のセルが読み込まれます。セルの .count を呼び出すと、何らかの理由で結果の 2 ページ目を 2 回返す API 呼び出しが行われます。2 ページ目には 20 件の結果が含まれています。終了カウントは 70 (最初のページは 50、2 ページ目は 20) のはずですが、結果の 2 ページ目を 2 回呼び出しているため、カウントは 90 に戻っています。

最後のセルを 2 回呼び出しwillDisplayCellています。tableViewController

.count メソッドでこれが 2 回発生するため、セル数が正しくないのはなぜですか? また、UI テストで正しい細胞数を取得する別の方法はありますか?