Android Studio 单元测试
Android Studio Unit Testing
我正在 android studio 上进行单元测试,我在测试 class 中创建了一个测试用例,并且每次 运行 它都会给出不同的输出,但是当我调试它给我罚款 put.It 可能是缓存问题或其他问题。我也尝试过 Invalidate studio 和 clean project 但仍然发生。请帮助。
在您的 @Before
方法中,请务必使用 Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
以确保在您开始测试时该应用程序尚未 运行 在您的测试后台。这可能是引入缓存问题的原因。
澄清一下,您的 @Before
方法应如下所示:
@Before
public void setup() {
//Initialize UiDevice instance
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
mDevice = UiDevice.getInstance(instrumentation);
mDevice.pressHome();
Intent intent = new Intent("com.REDACTED.auto.diagnostics.dealer.MAIN");
intent.setClassName("com.REDACTED.auto.diagnostics", "com.REDACTED.auto.diagnostics.dealer.MainActivity");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Context context = InstrumentationRegistry.getContext();
context.startActivity(intent);
}
如果您有源代码,可以使用更简单的方法,但我没有
我正在 android studio 上进行单元测试,我在测试 class 中创建了一个测试用例,并且每次 运行 它都会给出不同的输出,但是当我调试它给我罚款 put.It 可能是缓存问题或其他问题。我也尝试过 Invalidate studio 和 clean project 但仍然发生。请帮助。
在您的 @Before
方法中,请务必使用 Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
以确保在您开始测试时该应用程序尚未 运行 在您的测试后台。这可能是引入缓存问题的原因。
澄清一下,您的 @Before
方法应如下所示:
@Before
public void setup() {
//Initialize UiDevice instance
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
mDevice = UiDevice.getInstance(instrumentation);
mDevice.pressHome();
Intent intent = new Intent("com.REDACTED.auto.diagnostics.dealer.MAIN");
intent.setClassName("com.REDACTED.auto.diagnostics", "com.REDACTED.auto.diagnostics.dealer.MainActivity");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Context context = InstrumentationRegistry.getContext();
context.startActivity(intent);
}
如果您有源代码,可以使用更简单的方法,但我没有