12

画像をロードして色操作を行うクラスのテストを書いています。画像が読み込まれます

    UIImage* image = [UIImage imageNamed:imageName];

アプリを実行すると、すべて問題なく、画像が期待どおりに読み込まれます。テスト中に読み込まれる特定のテスト イメージを使用する単体テストを追加しました。テスト フィクスチャを実行すると、イメージが読み込まれません。これまでに読んだことは、メソッド imageNamed は常にアプリ バンドルのリソース フォルダーから読み込まれるということです。これをテストのバンドルに変更するにはどうすればよいですか?

4

6 に答える 6

4

テストでのみ使用したいイメージ (つまり、テスト フィクスチャ) がテスト バンドルに含まれていることを意味する場合は、この回答をご覧ください。

を使用して、実際のアプリの NSBundle を取得するようにその回答を調整できます[NSBundle bundleForClass:[SomeClassThatExistsInTheAppOnly class]]。これにより、テスト バンドルから特定のアプリ バンドルをターゲットにすることができます。

于 2013-06-24T01:39:20.177 に答える
1

アプリ バンドルを変更するには:

let bundle = Bundle(識別子: "org.cocoapods.ACSPLib")

let photo = UIImage(named: nameofThePhoto、in: bundle、compatibleWith: nil)

バンドル識別子

ポッドのバンドル識別子

于 2018-02-06T17:34:51.530 に答える
0

1 つのオプションは、そのリソースをテスト (アプリ) に追加することです。

個人的には、パス ( initWithContentsOfFile:)、データ ( initWithData:) などを使用します。これには、いくつかのパラメーターを導入する必要がある場合がありますが多くの場合、そのパラメーターを使用して、アプリの変更/クローン作成/再パッケージ化をあまり行わずに、より多くの入力画像ファイルをテストできるため (必要に応じて)、これで問題ありません。

于 2012-08-13T20:50:27.513 に答える