android – Roboguice和mocks:如何让roboguice在测试时注入模拟服务,否则使用REAL呢?
作者:互联网
刚用roboguice弄湿我的脚,我喜欢它!
我有很多依赖于DB和LocationManger等的方法,因此当我测试它们使用真实对象时,我想模拟这些对象,以便在我测试时我不必依赖任何东西.
我也一直在使用mockito,但我不确定我怎么能这样做?
我知道android系统附带了各种模拟但是我认为用mockito滚动自己会更好吗?
无论哪种情况,我都需要在测试时注入它们.
任何人对此都有任何想法?
提前致谢
解决方法:
查看https://github.com/roboguice/roboguice/blob/master/astroboy/src/test/java/org/roboguice/astroboy/controller/Astroboy2Test.java,它使用Modules.override()来覆盖具有一些特定于测试的配置的默认模块.
@Before
public void setup() {
// Override the default RoboGuice module
RoboGuice.setBaseApplicationInjector(Robolectric.application, RoboGuice.DEFAULT_STAGE, Modules.override(RoboGuice.newDefaultRoboModule(Robolectric.application)).with(new MyTestModule()));
// For roboguice 4.0 and robolectric 3.1.2
RoboGuice.getOrCreateBaseApplicationInjector(RuntimeEnvironment.application, RoboGuice.DEFAULT_STAGE, Modules.override(RoboGuice.newDefaultRoboModule(RuntimeEnvironment.application)).with(new MyTestModule()));
}
标签:android,dependency-injection,mocking,mockito,roboguice 来源: https://codeday.me/bug/20190613/1232453.html