Я пытаюсь создать тест с эспрессо, который проверяет, создан ли сервис при нажатии кнопки.
Код MainActivity:
public class MainActivity ... {
// Monitors the state of the connection to the service.
private final ServiceConnection mServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
LocalBinder binder = (LocalBinder) service;
mService = binder.getService();
mBound = true;
}
@Override
public void onServiceDisconnected(ComponentName name) {
mService = null;
mBound = false;
}
};
//onCreate() doesn't matter, nothing related with service
@Override
protected void onStart() {
super.onStart();
//...
mRequestLocationUpdatesButton = findViewById(R.id.request_location_updates_button);
mRequestLocationUpdatesButton.setOnClickListener(this);
bindService(new Intent(this, LocationUpdatesService.class), mServiceConnection,
Context.BIND_AUTO_CREATE);
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.request_location_updates_button) {
if (!checkPermissions()) {
requestPermissions();
} else {
mService.requestLocationUpdates();
}
}
}
Как я могу зарегистрироватьсятестовый класс? Я знаю, как проверить, создано ли другое действие, которое я создал, но я не знаю, как контролировать создание службы.
Тестовый класс:
@RunWith(AndroidJUnit4.class)
public class CheckActivityBehaviour {
@Rule
public ActivityScenarioRule<MainActivity> activityMain
= new ActivityScenarioRule<MainActivity>(MainActivity.class);
@Test
public void performClick() {
onView(withId(R.id.request_location_updates_button)).perform(click());
//on click this button service is started
}
}