【发布时间】:2011-04-11 21:41:21
【问题描述】:
我在 Android 上实施单元测试时遇到了很多麻烦。作为一个简单的测试,我一直在尝试匹配从字符串资源中检索到的字符串:
String myString = myActivity.getResources().getString(R.string.testString));
但是,在单元测试时,这总是会导致空指针异常。这包括 robolectric 以及随 Android sdk 提供的 Junit 实现。
一种可能的解决方案是以类似于数据访问对象的方式检索资源。也就是说,创建一个可以访问字符串资源的接口。这将允许我模拟访问字符串资源。同样,我可以将 Activity 的非 android 依赖行为分离到一个单独的 pojo 类中。这将允许我使用标准 Java 测试工具运行单元测试。事实上,我可以将任何与 Android 基础设施相关的活动委托给一个接口。
这似乎是为了进行单元测试而费尽心思。这值得么?有没有更可行的方法?
【问题讨论】:
标签: android unit-testing