2011-09-22 133 views
3

我有一个库,其Junit 3测试我想在Android上重复使用。问题是这些测试依赖于存在的文件(测试数据)。重复使用Android中的junit测试

对于Android来说,这意味着某些设置代码需要调用getContext().getAssets()并将资产文件转储到SD卡中,这些文件将在测试中被拾取。

问题是:我把这个设置代码放在哪里?我不能把它放在测试的设置中,因为它从TestCase继承而来(无论如何这意味着它不再是可移植的)。我无法将它放在AllTests套件中,因为它是从TestSuite继承而来的。由于它是一个Junit项目,因此没有哪个活动的onCreate可以挂钩。

回答

2

解决的办法是自定义InstrumentationTestRunner。覆盖onCreate,其中可以存储自定义设置逻辑。例如:

public class InstrumentationTestRunner extends 
     android.test.InstrumentationTestRunner { 

    @Override 
    public void onCreate(Bundle arguments) { 
     setUpTests(); 
     super.onCreate(arguments);  
    } 

    protected void setUpTests() { 
     // .... 
    } 
}