I have a UI test which clicks a button, and then launch a new Activity in its onClickListener. The test checks whether expected intent is sent or not.
My problem is, I want to test whether expected intent is sent without actually launching the activity. Because I found that new activity initializes its state, and it makes subsequent tests flaky.
I know there are two Espresso Intents API, which are intended
and intending
, but both fail to meet my needs. intended
API actually launches the target activity, and intending
API doesn't launch the activity, but it calls onActivityResult
callback which I don't want either. Because I'm afraid that code inside onActivityResult
may cause another flakiness.
Also intending
doesn't assert whether matching intent is sent. It just calls onActivityResult
callback when matching intent is found, which means I have to check whether onActivityResult
is called or not!
Is there a clean way to achieve what I want?