我一直试图弄清楚如何在单元测试我的
Android应用程序时模拟对Environment.getExternalStorateState()的调用.
我已经能够模拟SystemServices,Providers和Services,但我无法弄清楚如何模拟这个调用,因为它不是对我的上下文中提供的东西的调用,而是OS环境中的某些东西.
会对一些帮助表示感谢.
解决方法
您可以围绕此调用编写帮助程序并在之后轻松模拟它(抱歉在类名中包含帮助程序部分):
public class EnvironmentHelper { public String getStorageState() { return Environment.getExternalStorateState(); } }
或者,如果您使用Robolectric,您可以致电:
ShadowEnvironment.setExternalStorageState(Environment.MEDIA_MOUNTED);
这取决于您的设置和需求,但我建议投资Robolectric使用