SemanticsNodeInteractionCollection

Class

Common
class SemanticsNodeInteractionCollection
constructor(
    internal val testContext: TestContext,
    internal val useUnmergedTree: Boolean,
    internal val selector: SemanticsSelector,
)

Represents a collection of semantics nodes and the path to fetch them from the semantics tree. One can interact with these nodes by performing assertions such as assertCountEquals, or navigate to other nodes such as get.

An instance of SemanticsNodeInteractionCollection can be obtained from onAllNodes and convenience methods that use a specific filter, such as onAllNodesWithText.

For example, here is how you verify that there are exactly two clickable items:

Secondary Constructors

constructor(
    testContext: TestContext,
    useUnmergedTree: Boolean,
    matcher: SemanticsMatcher,
) : this(testContext, useUnmergedTree, SemanticsSelector(matcher))

Functions

fun fetchSemanticsNodes(
        atLeastOneRootRequired: Boolean = true,
        errorMessageOnFail: String? = null,
    ): List<SemanticsNode>

Returns the semantics nodes captured by this object.

Note: Accessing this object involves synchronization with your UI. If you are accessing this multiple times in one atomic operation, it is better to cache the result instead of calling this API multiple times.

Parameters

atLeastOneRootRequiredWhether to throw an error in case there is no compose content in the current test app.
errorMessageOnFailCustom error message to append when this fails to retrieve the nodes.
operator fun get(index: Int): SemanticsNodeInteraction

Retrieve node at the given index of this collection.

Any subsequent operation on its result will expect exactly one element found (unless SemanticsNodeInteraction.assertDoesNotExist is used) and will throw AssertionError if none or more than one element is found.