我在Android上执行单元测试时遇到了相当多的麻烦。作为一个简单的测试,我一直试图以匹配字符串资源中检索到的字符串:Android单元测试和接口
String myString = myActivity.getResources().getString(R.string.testString));
然而,当单元测试此总是导致一个空指针异常。这包括robolectric以及随Android sdk一起提供的Junit实现。
一种可能的解决方案是以类似于数据访问对象的方式来获取资源。也就是说,创建一个接口来访问字符串资源。这将允许我模拟访问字符串资源。同样,我可以将Activity的非android依赖行为分离为一个单独的pojo类。这将允许我使用标准的Java测试工具来运行单元测试。实际上,我可能会将任何与Android基础架构相关的活动委托给接口。
这似乎是很多跳过箍环来进行单元测试。这值得么?有没有更可行的方法?