要解决AndroidJUnit4应该有一个公共构造函数的问题,您可以按照以下步骤进行操作:
import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
private Context mContext;
public ExampleInstrumentedTest(Context context) {
mContext = context;
}
// 测试方法...
}
import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
private Context mContext;
public ExampleInstrumentedTest(Context context) {
mContext = context;
}
@Test
public void exampleTest() {
// 使用 mContext 进行测试...
}
}
import android.content.Context;
import androidx.test.runner.AndroidJUnitRunner;
public class CustomTestRunner extends AndroidJUnitRunner {
@Override
public void onCreate(Bundle arguments) {
Context context = getContext();
AndroidJUnitRunner.Builder builder = new AndroidJUnitRunner.Builder(this);
builder.setTest(new ExampleInstrumentedTest(context));
setInstrumentation(new InstrumentationWrapper(builder.build()));
super.onCreate(arguments);
}
}
通过这些步骤,您可以为AndroidJUnit4测试类添加一个公共构造函数,并在其中接受一个Context参数。这样,您就可以在测试方法中使用Context对象进行必要的操作。