1

我是使用 roboguice 的新手,我很难在我的应用程序中配置注入。

说我有以下界面

public interface IAPICall{
         void doSomething();
}

我的界面有两种不同的实现

public class MyApiCall implements IAPICall{
   public void doSomething(){
   }
}



 public class MyMockApicall implements IAPICall{
       public void doSomething(){
       }
    }

现在我的要求是我想将接口注入到我的活动中。我如何配置注入哪个具体类。在测试期间我想注入我的模拟类,而在生产期间我想注入实际类。我该如何配置?

亲切的问候

4

1 回答 1

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

要将您的模块添加到您的应用程序,请在 values 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>

这在这里描述:

http://code.google.com/p/roboguice/wiki/UpgradingTo20

于 2013-04-04T14:05:59.717 回答