Instrumentation Testing: Robot Pattern - devrath/RunTracer GitHub Wiki

What is the use case for using a robot pattern
- Consider a scenario where there is a
check-box and we have a logic that sets it checked/not-checked based on logic.
- Now if we change the
check-box to a image-view then a lot of things need to be modified.
Solution - Separate what from how
- By separating the
what and the how our tests are more maintainable.
- In the above example,
What -> whether the checkbox needs to be checked.
How -> whether the widget is checked.
Robot Pattern
- This pattern exposes an API that separates the
what and the how.
- By separating the actions (robot) from the assertions (tests), the Robot Pattern ensures that tests are easier to read and maintain.
Structure
Robot Class
- This contains methods that interact with UI elements.
- The method corresponds to action on the UI such as clicking a button or entering text.
Test Class
- This contains actual test cases that use the
robot class to perform action and verify outcomes.
Advantages of Robot Pattern
- Test cases are more readable.
- The entire logic is encapsulated in a separate place, so if the UI changes then we just need to modify the test case in one place.
- They can be re-used in other places if needed