Akshay Chauhan
Akshay Chauhan

Reputation: 25

Android Studio Unit Testing

I am doing the unit testing on android studio, I create a test case in test class and on every time when I run that it give different output but when I debug it give me fine out put.It may be problem of caching or something else. I have also tried Invalidate studio and clean project but still occurring. Please Help.

Upvotes: 1

Views: 122

Answers (1)

Tadhg
Tadhg

Reputation: 493

In your @Before method, make sure to use Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK) to make sure the app is not already running in the background of your test when you begin testing. This could be what is introducing your cache issue.

to clarify, your @Before method should look something like this:

@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);
}

There are simpler ways to do this if you have the source code, however in my case I did not

Upvotes: 1

Related Questions