ActivityUnitTestCase和谷歌地图Android API v2
我有一个Android项目,它使用Google地图Android API v2的外部库项目(ActivityUnitTestCase和谷歌地图Android API v2,android,unit-testing,google-maps-android-api-2,Android,Unit Testing,Google Maps Android Api 2,我有一个Android项目,它使用Google地图Android API v2的外部库项目(Google-play-services_lib) 我还有一个测试项目,它从第一点开始测试我的项目 package third.task.android.test; import third.task.android.CompassActivity; import third.task.android.R; import android.app.Activity; import android.cont
Google-play-services_lib
)
我还有一个测试项目,它从第一点开始测试我的项目
package third.task.android.test;
import third.task.android.CompassActivity;
import third.task.android.R;
import android.app.Activity;
import android.content.Intent;
import android.test.ActivityUnitTestCase;
public class CompassActivityTest extends ActivityUnitTestCase<CompassActivity> {
public CompassActivityTest() {
super(CompassActivity.class);
}
public void testTruth() {
assertTrue(true);
}
public void testPreConditions() {
startActivity(new Intent(getInstrumentation().getTargetContext(), CompassActivity.class), null, null);
Activity activity = getActivity();
assertNull(activity.findViewById(R.id.compasRadar));
}
}
当我删除负责在布局中显示地图的代码以及与地图相关的代码片段时,一切正常,但我必须使用包括地图在内的全部功能测试我的应用程序。
有什么方法可以做到这一点吗?关于
ActivityInstrumentationTestCase2
?无需启动活动,只需使用getActivity()
。如果需要使用自定义启动意图,可以使用setUp()
中的setActivityIntent(i)
指定它。我已经测试了它的工作:
package com.grt_team.airplanemode.test;
import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import com.grt_team.airplanemode.MainActivity;
import com.grt_team.airplanemode.R;
public class Test extends ActivityInstrumentationTestCase2<MainActivity> {
public Test() {
super(MainActivity.class);
}
public void testTruth() {
assertTrue(true);
}
@Override
protected void setUp() throws Exception {
super.setUp();
//setActivityIntent(i);
}
public void testPreConditions() {
Activity activity = getActivity();
assertNotNull(activity);
assertNull(activity.findViewById(0));
assertNotNull(activity.findViewById(R.id.map_fragment));
}
}
package com.grt_team.airplanemode.test;
导入android.app.Activity;
导入android.test.ActivityInstrumentationTestCase2;
导入com.grt_team.airplanemode.main活动;
导入com.grt_team.airplanemode.R;
公共类测试扩展了ActivityInstrumentationTestCase2{
公开考试(){
超级(MainActivity.class);
}
公共真理{
资产真实(真实);
}
@凌驾
受保护的void setUp()引发异常{
super.setUp();
//setActivityIntent(i);
}
public void testprepositions(){
Activity=getActivity();
assertNotNull(活动);
assertNull(activity.findviewbyd(0));
assertNotNull(activity.findviewbyd(R.id.map_片段));
}
}
ActivityInstrumentationTestCase2
和setActivityIntent()
对我帮助很大。
package com.grt_team.airplanemode.test;
import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import com.grt_team.airplanemode.MainActivity;
import com.grt_team.airplanemode.R;
public class Test extends ActivityInstrumentationTestCase2<MainActivity> {
public Test() {
super(MainActivity.class);
}
public void testTruth() {
assertTrue(true);
}
@Override
protected void setUp() throws Exception {
super.setUp();
//setActivityIntent(i);
}
public void testPreConditions() {
Activity activity = getActivity();
assertNotNull(activity);
assertNull(activity.findViewById(0));
assertNotNull(activity.findViewById(R.id.map_fragment));
}
}