2017-01-05 7 views
1

私が取り組んでいるアプリケーションのUIテストをいくつか書いており、プッシュ通知に基づいてイメージを切り替える必要があります。プッシュ通知なしでテストを書くには、androidTest resディレクトリにpngファイルを置き、テストリソースのリソースIDを使用してContextCompat.getDrawable()をロードします。私はまた、アプリケーションリソースからのIDを使用して、アプリケーションリソースから同じイメージをロードしています。アプリリソースとテストリソースとの間に描画可能なロードが異なる

はここでリソースをロードするコードです:

Drawable drawable1 = ContextCompat.getDrawable(setupRule.getActivity().getApplicationContext(), R.drawable.my_contact_pic); 
Drawable drawable2 = ContextCompat.getDrawable(setupRule.getActivity().getApplicationContext(), com.mycompany.myapp.devenv.test.R.drawable.my_contact_pic); 

drawable1はBitmapDrawableのインスタンスである、drawable2はNinePatchDrawableのインスタンスです。 drawable2の基になるPNGはdrawable1のPNGのコピーであるため、両方ともBitmapDrawablesであると思いますが、これをコードすることはできますが、これが将来の参考になる理由を理解したいと思います。

+0

これで、androidTestリソースからpngをロードするために、InstrumentationRegister.getContext()を指定する必要がありました。そうしないと、アプリケーションリソースからロードされます。私が指定したリソースIDがNinePatchファイルを指していたのは偶然のことでした。 –

答えて

0

これで、androidTestリソースからpngをロードするために、InstrumentationRegister.getContext()を指定する必要があります。それ以外の場合は、アプリケーションリソースからロードされます。私が指定したリソースIDがNinePatchファイルを指していたのは偶然のことでした。

関連する問題