java– 使用ActivityUnitTestCase时的RuntimeException,但不是ActivityInstrumentationTestCase2时的RuntimeExcepti

java– 使用ActivityUnitTestCase时的RuntimeException,但不是ActivityInstrumentationTestCase2时的RuntimeExcepti,第1张

概述我正在尝试使用ActivityUnitTestCase测试Android应用程序的MainActvity.出于某种原因,我甚至无法启动测试,因为它失败并出现以下错误跟踪:java.lang.RuntimeException:Exceptionduringsuiteconstructionatandroid.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.t

我正在尝试使用ActivityUnitTestCase测试Android应用程序的MainActvity.出于某种原因,我甚至无法启动测试,因为它失败并出现以下错误跟踪:

java.lang.RuntimeException: Exception during suite constructionat androID.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(TestSuiteBuilder.java:238)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:537)at androID.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1594)Caused by: java.lang.NullPointerException: name == nullat java.lang.class.getConstructorOrMethod(Class.java:446)at java.lang.class.getmethod(Class.java:915)at androID.test.suitebuilder.TestMethod.getAnnotation(TestMethod.java:60)at androID.test.suitebuilder.annotation.HasMethodAnnotation.apply(HasMethodAnnotation.java:39)at androID.test.suitebuilder.annotation.HasMethodAnnotation.apply(HasMethodAnnotation.java:30)at com.androID.internal.util.Predicates$OrPredicate.apply(Predicates.java:106)at androID.test.suitebuilder.annotation.HasAnnotation.apply(HasAnnotation.java:42)at androID.test.suitebuilder.annotation.HasAnnotation.apply(HasAnnotation.java:31)at com.androID.internal.util.Predicates$NotPredicate.apply(Predicates.java:122)at androID.test.suitebuilder.TestSuiteBuilder.satisfIEsAllPredicates(TestSuiteBuilder.java:253)at androID.test.suitebuilder.TestSuiteBuilder.build(TestSuiteBuilder.java:189)at androID.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:371)at androID.app.ActivityThread.handleBindApplication(ActivityThread.java:3943)at androID.app.ActivityThread.access00(ActivityThread.java:127)at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1189)at androID.os.Handler.dispatchMessage(Handler.java:99)at androID.os.Looper.loop(Looper.java:137)at androID.app.ActivityThread.main(ActivityThread.java:4447)at java.lang.reflect.Method.invokeNative(Native Method)at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:551)at dalvik.system.NativeStart.main(Native Method)

我无法调试它,因为它在它到达我可以放在测试用例类中的任何断点之前失败了.我正在使用ActivityInstrumentationTestCase2类进行的任何测试都没有问题.

在控制台中显示以下错误消息:

Test run Failed: Instrumentation run Failed due to 'java.lang.RuntimeException'

我假设,它暗示无法成功调用getInstrumentation().如果是这样,我怎么能创建一个有效的Intent来启动MainActivity?

ActivityUnitTestCase的代码:

public class MainActivityUnitTest extends     androID.test.ActivityUnitTestCase<MainActivity> {    private MainActivity activity;    public MainActivityUnitTest(String name) {        super(MainActivity.class);    }    @OverrIDe    protected voID setUp() throws Exception {        super.setUp();      }    @SmallTest    public voID testActivity() {        Intent intent = new Intent(getInstrumentation().getTargetContext(),                MainActivity.class);            startActivity(intent, null, null);            activity = getActivity();               assertNotNull(activity);    }}

感谢您提供的任何帮助.

解决方法:

问题出在构造函数中的参数“name”中.移除它时,它运行得非常好. 总结

以上是内存溢出为你收集整理的java – 使用ActivityUnitTestCase时的RuntimeException,但不是ActivityInstrumentationTestCase2时的RuntimeExcepti全部内容,希望文章能够帮你解决java – 使用ActivityUnitTestCase时的RuntimeException,但不是ActivityInstrumentationTestCase2时的RuntimeExcepti所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1119013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存