Mar*_*tin 4 android unit-testing mocking robolectric
任何人都可以提供帮助,直到现在我一直在成功地使用Robolectric :-)
我有一个获得位置经理的活动.现在根据文档,robolectric框架包含一个名为"ShadowLocationManager"的影子类来制作一种模拟.
我的问题是,我怎么能控制这个模拟,我可以控制将返回什么?如果是这样的话?
或者我必须创建我的"OWN"阴影类并实现"ShadowLocationManager".
我一直在搜索文档,但我找不到任何东西来确认我的要求.
如果robolectric确实包含位置管理器的阴影,我该如何控制启用哪些提供程序?
如果已经存在并且可以进行配置和控制,我不想实现我自己的影子类.
任何帮助真的很感激
提前致谢.
Robolectric中的影子类是各种Android类的替代品,只能根据其实现的功能进行更改.
纵观源为ShadowLocationManager,你有一些方法,你可以用它来调整假的行为:
public void setProviderEnabled(String provider, boolean isEnabled);
public void setProviderEnabled(String provider, boolean isEnabled, List<Criteria> criteria);
public boolean setBestProvider(String provider, boolean enabled);
public boolean setBestProvider(String provider, boolean enabled, List<Criteria> criteria);
public void setLastKnownLocation(String provider, Location location);
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令获取LocationManager的阴影实例:
LocationManager instanceOfLocationManager = Robolectric.newInstanceOf(LocationManager.class);
ShadowLocationManager slm = Robolectric.shadowOf(instanceOfLocationManager);
Run Code Online (Sandbox Code Playgroud)
注意:在示例中我使用Robolectric来创建实例LocationManager.根据您的测试设置,此实例可能来自您的注入框架或直接来自调用Context.getSystemService(..).最重要的是,确保测试中的实例与正在测试的代码使用的实例相同.
| 归档时间: |
|
| 查看次数: |
1993 次 |
| 最近记录: |