2010-12-13 12 views
2

私はJUnitで実行するための簡単なテストアプリケーションを作成しようとしています。私は適切なビューをクリックするためにclickViewを得るのに問題がありました。 SDKに付属のSkeletonActivityサンプルアプリケーションで使用できるサンプルコードを以下に示します。clickViewはどのように正しく使用されていますか?

public class SkeletonInstrumentation extends ActivityInstrumentationTestCase2<Activity>{ 

private Activity act; 
private Button bClear; 
private Button bBack; 
private EditText eMain; 

public SkeletonInstrumentation(){ 
    super("com.example.android.skeletonapp", Activity.class); 

} 

public void setUp() { 

    String app = this.getInstrumentation().getTargetContext().getPackageName(); 
    this.setActivityInitialTouchMode(true); 
    act = this.launchActivity(app, SkeletonActivity.class, Bundle.EMPTY); 

    bClear = (Button) act.findViewById(R.id.clear); 
    bBack = (Button) act.findViewById(R.id.back); 
    eMain = (EditText) act.findViewById(R.id.editor); 


} 

public void testClick() 
{ 

    TouchUtils.clickView(this, bClear); 


} 

public void testSendKeys() 
{ 

    act.runOnUiThread(
    new Runnable(){ 
    public void run(){ 
     bClear.clearFocus(); 
     eMain.requestFocus(); 
    } 
    } 
    ); 

    this.sendKeys("A B C D E F G ENTER"); 
} 

} 

testClickが実行されますが、アクティビティの開始時にフォーカスを持っているメインのEditTextビューをクリックすると、オンスクリーンキーボードが表示されます。 EditTextの下の[Clear]ボタンをクリックします。誰かが私に何が間違っていると教えてくれる?

答えて

-1

ここのclickViewの使用は正しいです。問題はAndroidManifest.xmlにありました。 MinとTarget SDKが正しく動作するように設定する必要があります。

+1

詳細を教えてください。 –

0

AndroidManifest.xmlにminとmaxのターゲットSDKを追加すると、私にとってはうまくいきました。私はthis answerからアイディアを得ました。

<uses-sdk android:targetSdkVersion="17" android:minSdkVersion="17"/> 

とTouchUtilsの私の用途のすべての一貫再び行動を開始しました:テストされているプロジェクト(ないテストプロジェクト)で、私は次のAndroidManifest.xmlに行を追加しました。

私は同じ問題がありましたin this questionと私は回避策を見つけることができたが、それは本当に面倒になったので、私はそれの底に到達するより多くの時間を過ごした。

関連する問題