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 ではありません。
このコードの何が問題になっていますか? どんな助けでも大歓迎です。ありがとう。