刚用 roboguice 弄湿了我的脚,我喜欢它!
我有很多方法依赖于 DB 和 LocationManger 等,因此当我测试这些方法时,它使用真实的对象,我想模拟这些对象,以便在测试时我不必依赖任何东西。
我也一直在使用 mockito,但我不确定我该怎么做?
我知道 android 系统带有各种模拟,但我认为最好用 mockito 推出我自己的模拟?
在任何一种情况下,我都需要在测试时注入(inject)它们。
有人对此有任何想法吗?
提前致谢
最佳答案
看看 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()));
}