What is Roborazzi and why use it?
mainRoborazzi is a screenshot testing library that makes JVM Android Integration Tests visible. It integrates with Robolectric (specifically supporting Robolectric Native Graphics (RNG)) to enable efficient screenshot testing on the JVM.
Key Benefits
- Visual Validation: Detects visual regressions and validates app appearance more efficiently than manual assertion statements.
- JVM-based Testing: Unlike Instrumentation tests (which run on real devices/emulators in
androidTest/and are prone to environment-related false negatives), Roborazzi runs JVM tests (local tests intest/) on a developer's PC or CI environment. - Robolectric Integration: Unlike Paparazzi, which is incompatible with Robolectric, Roborazzi works alongside Robolectric. This allows you to use tools like Hilt and interact with complex Android components within your JVM tests.
Comparison: Paparazzi vs. Roborazzi
| Feature | Paparazzi | Roborazzi |
|---|---|---|
| JVM Visualization | Yes | Yes |
| Robolectric Compatibility | No | Yes |
| Hilt/Component Interaction | Limited | High (via Robolectric) |