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