如何测试Android库项目
我正在基于Android位图类(称之为AndroidLib)编写一个Android库项目,该类只包含实用程序类(无活动)。我试图用Android JUnit测试它,但它一直抱怨找不到AnroidLib.apk如何测试Android库项目,android,junit,apk,Android,Junit,Apk,我正在基于Android位图类(称之为AndroidLib)编写一个Android库项目,该类只包含实用程序类(无活动)。我试图用Android JUnit测试它,但它一直抱怨找不到AnroidLib.apk 对Android库项目进行单元测试的正确方法是什么?如果您的ulitiy类不依赖于任何特定于Android的代码,那么您可以使用标准的JUnit单元测试。无需使用Android版本。引用: “建议使用两种方法对库项目中的代码和资源进行测试: 您可以设置一个测试项目,用于检测依赖于库项目的
对Android库项目进行单元测试的正确方法是什么?如果您的ulitiy类不依赖于任何特定于Android的代码,那么您可以使用标准的JUnit单元测试。无需使用Android版本。引用: “建议使用两种方法对库项目中的代码和资源进行测试:
- 您可以设置一个测试项目,用于检测依赖于库项目的应用程序项目。然后,您可以向项目中添加库特定功能的测试
- 您可以设置一个依赖于库的标准应用程序项目,并将插装放在该项目中。这使您可以创建一个包含测试/插装和要测试的代码的自包含项目。”
“com.example.lib”
。创建一个针对您的库的测试项目。在清单文件中,您将看到package=“com.example.lib.test”
,以及targetPackage=“com.example.lib”
。只需将包从“com.example.lib.test”更改为“com.example.lib”(targetPackage
保持原样)
另外,确保该库在Java构建路径中引用到您的测试项目而不是,但与通常的Android库一样:在Eclipse中,它必须在project->Properties->Android
选项卡中显示为库,但在project->Properties->Java构建路径
选项卡中显示为而不是
然后运行测试。注意:此解决方案基于使用EclipseIndigo(3.8.2),可能必须对另一个IDE进行稍微不同的实现,尽管基本原理相同 我也有类似的问题,我发现执行以下操作总是有效的: (注意:这些说明用于从头开始构建新的项目组。如果您已经构建了项目组的一部分,则可能需要修改您的项目,以便它们以相同的方式连接。)
package danny.remington.remington_android_tools_test_app.test;
import android.test.ActivityInstrumentationTestCase2;
import danny.remington.remington_android_tools_test_app.TestActivity;
/**
*
*/
public class TestActivityTest extends
ActivityInstrumentationTestCase2<TestActivity> {
public TestActivityTest() {
super(TestActivity.class);
}
}
您应该得到一个类来测试您的Android库,该类类似于:
package danny.remington.remington_android_tools_test_app.test;
import android.test.ActivityInstrumentationTestCase2;
import danny.remington.remington_android_tools_test_app.TestActivity;
/**
*
*/
public class TestActivityTest extends
ActivityInstrumentationTestCase2<TestActivity> {
public TestActivityTest() {
super(TestActivity.class);
}
}
包danny.remington.remington\u android\u tools\u test\u app.test;
导入android.test.ActivityInstrumentationTestCase2;
导入danny.remington.remington\u android\u tools\u test\u app.TestActivity;
/**
*
*/
公共类TestActivityTest扩展
ActivityInstrumentationTestCase2{
公共测试活动测试(){
super(TestActivity.class);
}
}
然后,您可以添加所需的任何测试。除非测试需要访问特定于Android的组件(例如,资产文件夹),否则运行测试时无需进一步引用Android测试应用程序(本例中为“RemingtonAndroidToolsTestApp”)。如果您需要访问任何特定于Android的组件,您可以通过修改Android测试应用程序(“本例中为RemingtonAndroidToolsTestApp”),然后通过