我有一个库,我想在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() {
        // ....
    }
}

10-08 19:08