Understanding semantics
In the previous section, I showed you a simple test case that checks if a button text matches a given string. Here is another test case. It performs a click on the button to see if the button text changes as expected:
@Test fun testLetterAfterButtonClickIsB() { rule.onNodeWithText("A") .performClick() .assert(hasText("B")) }
Again, we start by finding the button. performClick()
(this is called an action) clicks it. Assert(hasText("B"))
checks if the button text is B afterward. Assertions determine if a test passes or fails.
onNodeWithText()
(an extension function of SemanticsNodeInteractions Provider
) returns a SemanticsNodeInteraction
semantics node. The SemanticsNodeInteractionsProvider
interface is the main entry point into testing and is typically implemented by a test rule. It defines two methods, as follows:
onNode()
finds and returns a semantics...