# FragmentScenario.FragmentAction

Artifact: [androidx.fragment:fragment-testing](https://developer.android.com/jetpack/androidx/releases/fragment) [View Source](https://cs.android.com/search?q=file:androidx/fragment/app/testing/FragmentScenario.kt+class:androidx.fragment.app.testing.FragmentScenario.FragmentAction) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/fragment#1.1.0)

*** ** * ** ***


```
public fun interface FragmentScenario.FragmentAction<F extends Fragment>
```

<br />

*** ** * ** ***

FragmentAction interface should be implemented by any class whose instances are intended to be executed by the main thread. A Fragment that is instrumented by the FragmentScenario is passed to `https://developer.android.com/reference/androidx/fragment/app/testing/FragmentScenario.FragmentAction#perform(androidx.fragment.app.Fragment)` method.

You should never keep the Fragment reference as it will lead to unpredictable behaviour. It should only be accessed in `https://developer.android.com/reference/androidx/fragment/app/testing/FragmentScenario.FragmentAction#perform(androidx.fragment.app.Fragment)` scope.

## Summary

| ### Public methods |
|---|---|
| `abstract void` | `https://developer.android.com/reference/androidx/fragment/app/testing/FragmentScenario.FragmentAction#perform(androidx.fragment.app.Fragment)(@https://developer.android.com/reference/androidx/annotation/NonNull F fragment)` This method is invoked on the main thread with the reference to the Fragment. |

## Public methods

### perform

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/fragment#1.1.0)

```
abstract void perform(@NonNull F fragment)
```

This method is invoked on the main thread with the reference to the Fragment.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull F fragment` | a Fragment instrumented by the FragmentScenario. |