gpt4 book ai didi

android - Roboguice 和模拟 : How to have roboguice inject a mock service when testing but use the REAL otherwise?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:24 27 4
gpt4 key购买 nike

刚接触 roboguice,我喜欢它!

我有很多方法依赖于 DB 和 LocationManger 等,因此当我测试它们时,它使用真实的对象,我想模拟这些对象,这样当我测试时我就不必依赖在任何事情上。

我也一直在使用 mockito,但我不确定我该怎么做?

我知道 android 系统带有各种 mock,但我认为用 mockito 推出我自己的 mock 会更好吗?

无论哪种情况,我都需要在测试时注入(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()));
}

关于android - Roboguice 和模拟 : How to have roboguice inject a mock service when testing but use the REAL otherwise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11626191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com