我寫了一個簡單的Android應用程序,其中包含2個活動: 1)Login.java-接收用戶名和密碼,然後將用戶指向另一個活動 - DisplayMessageActivity.javaAndroid:JUnit測試:junit.framework.AssertionFailedError:意圖是空的
2)DisplayMessageActivity.java-,經過用戶被重新定向
關注這,我寫了一個簡單的測試MainActivityUnitTest.java測試正確的意圖是否爲第二屏幕上顯示的活動通過getStartedActivityIntent()方法觸發
I手動測試它在Android手機上,並然而它的作品,當我運行MainActivityUnitTest.java作爲JUnit測試表明: junit.framework.AssertionFailedError:意圖是空
在這一行:
assertNotNull("Intent was null", triggeredIntent);
MainActivityUnitTest.java
public class MainActivityUnitTest extends
android.test.ActivityUnitTestCase<Login> {
private int buttonId;
private Login activity;
public MainActivityUnitTest() {
super(Login.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
Intent intent = new Intent(getInstrumentation().getTargetContext(),
Login.class);
startActivity(intent, null, null);
activity = getActivity();
}
public void testLayout(){
//buttonId = com.example.myfirstapp2.MainActivity.R.id.button1;
//assertNotNull(activity.findViewById(buttonId));
Button view = (Button)activity.findViewById(R.id.btnLogin);
assertEquals("Incorrect label of the button", "Login", view.getText());
}
public void testIntentTriggerViaOnClick() {
Button view = (Button)activity.findViewById(R.id.btnLogin);
assertNotNull("Button not allowed to be null", view);
view.performClick();
Intent triggeredIntent = getStartedActivityIntent();
assertNotNull("Intent was null", triggeredIntent);
String data = triggeredIntent.getExtras().getString("URL");
assertEquals("Incorrect data passed via the intent",
"1http://www.vogella.com", data);
}
}
請幫
是的,它確實是 view.performClick(); \t意圖triggeredIntent = getStartedActivityIntent(); – user3238961
然而,登錄活動調用startactivity 內部 私有類LongOperation延伸的AsyncTask <字符串,空隙,空隙率> { 私有類LongOperation延伸的AsyncTask <字符串,空隙,空隙率> { 塊 因爲我解析一個Web服務 – user3238961