我有一个库,我想在android上重用它的junit 3测试。问题是这些测试依赖于存在的文件(测试数据)。
对于android,这意味着一些设置代码需要调用getContext().getAssets()
并将资产文件转储到sdcard,在sdcard中,测试将提取这些文件。
问题是:我应该把这个设置代码放在哪里?我不能把它放在测试设置中,因为它继承自testcase(无论如何,这意味着它不再是可移植的)。我不能把它放在alltests套件中,因为它继承自testsuite。因为它是一个junit项目,所以没有一个活动的oncreate可以挂接。
最佳答案
解决方案是定制InstrumentationTestRunner。重写oncreate,其中可以存储自定义设置逻辑。例如:
public class InstrumentationTestRunner extends
android.test.InstrumentationTestRunner {
@Override
public void onCreate(Bundle arguments) {
setUpTests();
super.onCreate(arguments);
}
protected void setUpTests() {
// ....
}
}