在 Android 中测试非活动类
我知道如何在 Android 中使用 JUnit 4 测试 Activity 类,但我无法理解如何测试非活动类(它们不扩展 Activity、ListActivity 或其他一些 Activity 类,但使用一些 Android API)。请在这方面帮助我。
I know how to test Activity classes with JUnit 4 in Android but I am unable to understand how to test non-activity classes (which don't extends Activity, ListActivity, or some other Activity class, but uses some Android APIs). Please help me in this regard.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要测试非活动类:
作为 Android JUnit Test 运行
To test non activity classes:
run as Android JUnit Test
Android SDK 包括 JUnit。事实上,AndroidTestCase和InstrumentationTestCase等Android测试类都继承自junit.framework.TestCase。这意味着您可以使用标准 JUnit 测试用例来测试非 Activity 类并将其包含在 Android 项目中。
例如,您可以创建一个包含要测试的简单类的 Android 项目:
以及一个包含标准 JUnit 测试的 Android 测试项目来测试此类:
并在 Android 设备或 Android 模拟器上运行它。
在评论中看到问题澄清后的更多信息:
AndroidTestCase 或其他 Android 测试类可用于测试需要访问 Android 框架其余部分的非活动类(如有必要,可在 setUp() 中提供虚拟活动) 。例如,如果您需要绑定到服务,这些可以让您访问上下文。
The Android SDK includes JUnit. In fact, the Android test classes such as AndroidTestCase and InstrumentationTestCase inherit from junit.framework.TestCase. This means that you can use a standard JUnit test case to test a non-Activity class and include it in Android Projects.
For example, you can create an Android Project with a simple class to test:
and an Android Test Project with a standard JUnit test to test this class:
and run this on an Android device or on the Android emulator.
More information after seeing clarification of question in the comments:
AndroidTestCase or other Android test classes can be used to test non-Activity classes which need access to the rest of the Android framework (with a dummy activity provided in the setUp() if necessary). These give you access to a Context if you need to, for example, bind to a service.