我一直试图弄清楚如何在对我的Android应用进行单元测试时模拟对Environment.getExternalStorateState()
的调用。
我已经能够模拟SystemServices,Providers和Services,但我无法弄清楚如何模拟这个调用,因为它不是对我的上下文中提供的东西的调用,而是OS环境中的某些东西。
感谢一些帮助。
答案 0 :(得分:9)
你可以在这个电话周围写一个帮手,然后轻松地模仿它(抱歉在课堂名称中有帮助部分):
public class EnvironmentHelper {
public String getStorageState() {
return Environment.getExternalStorateState();
}
}
或者如果您使用 Robolectric ,您可以致电:
ShadowEnvironment.setExternalStorageState(Environment.MEDIA_MOUNTED);
这取决于您的设置和需求,但我建议投资 Robolectric 用法
答案 1 :(得分:0)
我只是在我的测试帮助程序类中解决了对Environment方法的调用问题,因此我可以根据我想要的变量模拟SD卡的状态,这取决于我在每个测试用例中可以设置的变量。 我认为最佳解决方案。