Me used Fragment
Android 兼容包,使用android-support-v4.jar
。但我无法对此进行 JUnit 测试。
My main FragmentActivity
类声明如下
public class MyActivityClass extends FragmentActivity{
...............
}
然后在我的测试项目中
public class MyActivityClassTest extends ActivityInstrumentationTestCase2<MyActivityClass> {
public MyActivityClassTest() {
super("com.android.myproject", MyActivityClass.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
...................
}
public void testPreconditions() {
.................
}
public void testNotNull(){
................
}
}
但是当我运行时Android JUnit Test
生产FailedToCreateTests[Runner:Junit3]
故障追踪
java.lang.RuntimeException: Exception during suite construction
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(TestSuiteBuilder.java:239)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
Caused by: java.lang.reflect.InvocationTargetException
at com.android.myproject.test.MyActivityClassTest.<init>(MyActivityClassTest.java:28)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
at android.test.suitebuilder.TestMethod.instantiateTest(TestMethod.java:87)
at android.test.suitebuilder.TestMethod.createTest(TestMethod.java:73)
at android.test.suitebuilder.TestSuiteBuilder.addTest(TestSuiteBuilder.java:263)
at android.test.suitebuilder.TestSuiteBuilder.build(TestSuiteBuilder.java:185)
at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:336)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3982)
at android.app.ActivityThread.access$2900(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1901)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoClassDefFoundError: com.android.myproject.MyActivityClass
... 19 more
当我改变的时候MyActivityClass
延伸Activity
效果很好(MyActivityClass extends Activity
)
我也用过同样的android-support-v4.jar
在我的测试和主项目中
ActivityInstrumentationTestCase2
兼容于Fragments
。您应该只按照中提到的步骤进行操作Android 测试:外部库 http://dtmilano.blogspot.com/2009/12/android-testing-external-libraries.html,已更新以涵盖以下情况android-support-v4.jar
too.
然后,您将能够编写如下测试:
public void testFragmentManager() {
FragmentActivity activity = getActivity();
assertNotNull(activity.getSupportFragmentManager());
}
或者任何你需要测试的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)