我刚开始使用 roboguice,我很难在我的应用程序中配置注入(inject)。
假设我有如下界面
public interface IAPICall{
void doSomething();
}
我的界面有两种不同的实现方式
public class MyApiCall implements IAPICall{
public void doSomething(){
}
}
public class MyMockApicall implements IAPICall{
public void doSomething(){
}
}
现在我的要求是我想将界面注入(inject)到我的 Activity 中。我如何配置注入(inject)哪个具体类。在测试期间,我想注入(inject)模拟类,而在生产期间,我想注入(inject)实际类。我该如何配置?
亲切的问候
最佳答案
在你的 guice 配置模块中:
public class GuiceConfigurationModule extends AbstractModule {
...
@Override
protected void configure() {
...
bind(IAPICall.class).to(MyApiCall.class);
...
}
...
}
在你的 Activity 中:
@Inject
IAPICall someApiCall;
在测试期间使用模拟接口(interface)的最佳方式是创建一个测试模块,其中绑定(bind)指向模型类。有一个关于 Robolectric 的教程 关于如何做到这一点。
http://pivotal.github.com/robolectric/roboguice.html
要将模块添加到应用程序,请在值资源文件夹中添加一个 roboguice.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="roboguice_modules">
<item>com.stackoverflow.test.GuiceConfigurationModule</item>
</string-array>
</resources>
这是在这里描述的:
关于android - 使用 RoboGuice 在我的 Activity 中注入(inject)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15812792/