刚用 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()));
}

10-07 19:27
查看更多