Android 为预构建的apk编写JUnit功能测试
我对事物仍然比较生疏,我正在试图弄清楚是否有可能针对预构建的应用程序源编写JUnit功能测试。我找到了一种对应用程序重新签名的方法,但我想知道如何将其作为测试的依赖项包含在Eclipse项目中?是的,使用Java反射确实可以做到这一点 除此之外,您还需要退出要测试的应用程序。从您的设备下载它(例如,使用AppMonster应用程序),使用dedict.jar退出(http://www.troido.de/re-sign.jar)并使用adb再次安装 之后,一切都会好起来Android 为预构建的apk编写JUnit功能测试,android,dependencies,apk,Android,Dependencies,Apk,我对事物仍然比较生疏,我正在试图弄清楚是否有可能针对预构建的应用程序源编写JUnit功能测试。我找到了一种对应用程序重新签名的方法,但我想知道如何将其作为测试的依赖项包含在Eclipse项目中?是的,使用Java反射确实可以做到这一点 除此之外,您还需要退出要测试的应用程序。从您的设备下载它(例如,使用AppMonster应用程序),使用dedict.jar退出(http://www.troido.de/re-sign.jar)并使用adb再次安装 之后,一切都会好起来 @SuppressWar
@SuppressWarnings("rawtypes")
public class YourTestSuite extends ActivityInstrumentationTestCase2 {
/** Package ID of the app under test. */
private static final String TARGET_PACKAGE_ID = "com.something";
/** ID of the app under test's main activity. */
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.something.HomeActivity";
/** Launcher activity class. */
private static Class<?> launcherActivityClass;
/** Static code to find the activity class. */
static {
try {
launcherActivityClass = Class
.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
}
catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
/**
* Constructor
*
* @throws ClassNotFoundException
*/
@SuppressWarnings("unchecked")
public YourTestSuite() throws ClassNotFoundException {
super(TARGET_PACKAGE_ID, launcherActivityClass);
}
/* Your test code comes here. */
}
@SuppressWarnings(“rawtypes”)
公共类YourTestSuite扩展了ActivityInstrumentationTestCase2{
/**正在测试的应用程序的包ID*/
私有静态最终字符串TARGET\u PACKAGE\u ID=“com.something”;
/**被测应用程序主要活动的ID*/
私有静态最终字符串启动器\u ACTIVITY\u FULL\u CLASSNAME=“com.something.HomeActivity”;
/**启动器活动类*/
私有静态类启动器ActivityClass;
/**用于查找活动类的静态代码*/
静止的{
试一试{
launcherActivityClass=类
.forName(启动器活动全名);
}
catch(classnotfounde异常){
抛出新的运行时异常(e);
}
}
/**
*建造师
*
*@ClassNotFoundException
*/
@抑制警告(“未选中”)
public YourTestSuite()抛出ClassNotFoundException{
super(TARGET\u PACKAGE\u ID,launcherActivityClass);
}
/*你的测试代码在这里*/
}
看起来不错,但如何将apk作为测试的依赖项包含在Eclipse项目中?我是否将它从app重命名为zip并将其列为jar依赖项?在Eclipse中您不需要任何依赖项。只需在您的测试设备上安装apk,否则您的测试用例将无法在运行时加载正在测试的活动。您可以使用命令“adb install”在测试设备上安装apk。