使用したJUnitのテストコードの説明です。
GridViewで作られたViewのテストをするようにします。
最初にテストされる側のActivityの説明をします。
前に、GridViewでSDCardのビデオクリップを表示する
サンプルの説明をしたので、基本的な部分はそちらを
参照してください。
GridViewに、OnClickListener()を設定します。
OnClickListener()では、どの画像(ImageView)がClickされているか
わからないので、コンストラクタでpositionを引数とした
OnClickListenerのサブクラスを作ります。
class OnClickListenerDetectPosition implements OnClickListener { private int mPosition = 0; public OnClickListenerDetectPosition(int position ) { mPosition = position; } @Override public void onClick(View v) { Log.d("GridViewActivity", "onClick = " + mPosition); } }OnClickListenerDetectPositionをGridViewに設定します。
OnClickListener onclikclistener = new OnClickListenerDetectPosition(position); imageView.setOnClickListener(onclikclistener);次に、テストする側のクラスを説明します。
ActivityInstrumentationTestCase2のサブクラスを作成します。
UIThread上からsetPosition()を使用してpositionを変更します。
mActivity.runOnUiThread(new Runnable() { public void run() { Log.d("GridViewActivity", "setSelection 2"); gridview.setSelection(2); } }); mInstrumentation.waitForIdleSync();次に、getSelectedView()で、選択されているViewを取り出し、performClickを使用して、
クリックする動作をテストします。
mActivity.runOnUiThread(new Runnable() { public void run() { Log.d("GridViewActivity", "getSelectedItemPosition = " + gridview.getSelectedItemPosition ()); Log.d("GridViewActivity", "getSelectedView"); ImageView imageview = (ImageView)gridview.getSelectedView(); Log.d("GridViewActivity", "performClick"); imageview.performClick(); } });Logcatを使用して動作を確認します。テストする側からperformClickすることで、テストされる側のOnClickListenerDetectPosition クラスが動作できたことがわかります。
setSelection 2 getSelectedItemPosition = 2 onClick = 2テストされる側のソースコードです。.
テストする側のソースコードです。.
0 件のコメント:
コメントを投稿