2

Android 用の JUnit テスト ケースを作成しました。

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

package com.endeavour.clarity.test;

import com.endeavour.clarity.LoginScreen;
import com.endeavour.clarity.R;

import android.test.ActivityInstrumentationTestCase2;
import android.test.TouchUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class LoginScreenTest extends
ActivityInstrumentationTestCase2<LoginScreen> implements OnClickListener {

private LoginScreen mActivity;
private EditText username,password,Url;
private Button signin;

public LoginScreenTest() {
    super("com.endeavour.clarity",LoginScreen.class);
}

@Override
protected void setUp() throws Exception {
    super.setUp();
    super.setUp();

    setActivityInitialTouchMode(false);

    mActivity = getActivity();

    username = (EditText)mActivity.findViewById(R.id.username_edit_text);
    password = (EditText)mActivity.findViewById(R.id.password_edit_text);
    Url = (EditText)mActivity.findViewById(R.id.url_edit_text);
    signin = (Button)mActivity.findViewById(R.id.singin);
    signin.setOnClickListener(this);
}

public void testPreConditions(){
    assertTrue(username != null);
    assertTrue(password != null);
    assertTrue(Url != null);
    assertTrue(signin != null);
}

public void testLogin(){
    final String n1 = "ts_apr1";
    final String p1 = "clarity7";
    String name, pass;
    username.clearComposingText();
    password.clearComposingText();
    assertTrue(signin != null);
    TouchUtils.tapView(this, username);
    sendKeys("ts_apr1");
    TouchUtils.tapView(this, password);
    sendKeys("clarity7");
    mActivity.runOnUiThread(new Runnable() {

        public void run() {
            signin.performClick();
        }
    }); 

    name = username.getText().toString();

    pass = password.getText().toString();

    Log.i("name",name); 
    Log.i("Password",pass);
    assertEquals(n1, name);
    assertEquals(p1, pass);
}

public void onClick(View v) {
    // TODO Auto-generated method stub

}
}

しかし、このコードは例外をスローします java.lang.NullPointerException LoginScreenTest$1.run(LoginScreenTest.java:62)

runOnUIThread のサインイン ボタンは null ですが、メソッドの開始時には null ではありません。

このコードの何が問題になっていますか? どんな助けでも大歓迎です。ありがとう。

4

0 に答える 0