我写了一个包含2个活动的简单Android应用: 1)Login.java-它接收用户名和密码,然后将用户引导到另一个activity-DisplayMessageActivity.java
2)DisplayMessageActivity.java-用户重定向后在第二个屏幕上显示的活动
之后,我编写了一个简单的测试MainActivityUnitTest.java来测试是否通过getStartedActivityIntent()方法触发了正确的意图
我在Android手机上手动测试了它,但是,当我运行MainActivityUnitTest.java作为JUnit测试时,它显示: junit.framework.AssertionFailedError:Intent为null
在这一行:
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);
}
}
请帮忙
答案 0 :(得分:0)
您的登录活动正在测试中。
在调用getStartedActivityIntent之前,这些活动是否会调用startactivity?
public Intent getStartedActivityIntent()
在API级别1中添加此方法将返回启动意图(如果您的 测试中的活动调用startActivity(Intent)或 startActivityForResult(Intent,int)。
返回start调用中提供的Intent,如果没有start,则返回null 打电话。