安卓依赖注入和测试库

  能够使Android开发变得容易的任何事情都应考虑。有一些库包,使测试更加简单,提高你的代码的模块化,并提供已创建的mock对象 。

依赖注入的定义按这里,下面是一个安卓依赖注入框架和一个测试框架:

  1. RoboGuice - 这是一个采取 Google依赖注入产品guice作为安卓的框架
  2. Robolectric -这是一个测试框架

 factory objects工厂方法 提供了分离了对象创建和对象使用,使用一个静态工厂对象用来作为测试使用:

public abstract class WidgetBase implements IWidget{
protected ISomeObject mSomeObject;

public WidgetBase(ISomeObject _obj){
mSomeObject = _obj;
}
}

public AlertWidgetFactory{
static private WidgetBase mTest = null;
static private boolean mTestFlag = false;
static WidgetBase create(ISomeObject _obj){
if(mTestFlag){
return mTest;
}
return new AlertWidget(_obj);
}

static void setTest(WidgetBase _testWidget){
mTest = _testWidget;
}

static void setTestFlag(boolean _flag){
mTestFlag = _false;
}
}

这样在Junit的setUp方法,可以替代WidgetBase的mock版本,使用下面代码测试就变得容易:

public void someMethod(String _value){
if(_value == ""){
ISomeObject foo = new SomeValueAssigner( _value );
IWidget alert = AlertWidgetFactory.create(foo);
}
//more code...
}

 

安卓的依赖注入DI Dagger应用源码