【问题标题】:Why is the returned context from getInstrumentation().getTargetContext() different than getActivity().getApplicationContext()?为什么 getInstrumentation().getTargetContext() 返回的上下文与 getActivity().getApplicationContext() 不同?
【发布时间】:2011-04-04 22:20:06
【问题描述】:

getInstrumentation().getTargetContext() 返回一个 android.app.Context 类型。但我感觉它是 android.app.ApplicationContext 的基类,因为我在以下日志中收到了 Class cast 异常。

getActivity().getApplicationContext() 返回一个 android.app.Context 类型,尽管它实际上返回的是由我的 ActivityInstrumentationTestCase2 实现定义的我的活动的基类。

LogCat:

04-04 21:02:27.036: INFO/TestRunner(431): started: testIt(edu.rockies.rockies.activity.courses.test.TopicTest)
04-04 21:02:27.126: INFO/TestRunner(431): failed: testIt(edu.rockies.rockies.activity.courses.test.TopicTest)
04-04 21:02:27.126: INFO/TestRunner(431): ----- begin exception -----
04-04 21:02:27.136: INFO/TestRunner(431): java.lang.ClassCastException: android.app.ApplicationContext
04-04 21:02:27.136: INFO/TestRunner(431):     at edu.rockies.rockies.activity.courses.test.TopicTest.setUp(TopicTest.java:27)
04-04 21:02:27.136: INFO/TestRunner(431):     at junit.framework.TestCase.runBare(TestCase.java:125)
04-04 21:02:27.136: INFO/TestRunner(431):     at junit.framework.TestResult$1.protect(TestResult.java:106)
04-04 21:02:27.136: INFO/TestRunner(431):     at junit.framework.TestResult.runProtected(TestResult.java:124)
04-04 21:02:27.136: INFO/TestRunner(431):     at junit.framework.TestResult.run(TestResult.java:109)
04-04 21:02:27.136: INFO/TestRunner(431):     at junit.framework.TestCase.run(TestCase.java:118)
04-04 21:02:27.136: INFO/TestRunner(431):     at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
04-04 21:02:27.136: INFO/TestRunner(431):     at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
04-04 21:02:27.136: INFO/TestRunner(431):     at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430)
04-04 21:02:27.136: INFO/TestRunner(431):     at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
04-04 21:02:27.136: INFO/TestRunner(431): ----- end exception -----
04-04 21:02:27.156: INFO/TestRunner(431): finished: testIt(edu.rockies.rockies.activity.courses.test.TopicTest)

Link

【问题讨论】:

    标签: android unit-testing


    【解决方案1】:

    See Question. 我想我解决了自己的问题。

    【讨论】:

    • 并循环到您自己的链接;)
    猜你喜欢
    • 1970-01-01
    • 2014-05-22
    • 2023-03-10
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2016-07-28
    相关资源
    最近更新 更多