{"@context":"https://ihatereading.in/roadmap/schema/v1","type":"roadmap-chapter","roadmap":{"slug":"vibe-coding-mobile-app-development","title":"Vibe Coding Mobile App Roadmap (Expo, Tailwind & AI Agents)","url":"https://ihatereading.in/roadmap/vibe-coding-mobile-app-development","machineUrl":"https://ihatereading.in/roadmap/vibe-coding-mobile-app-development.json"},"slug":"testing-mobile-apps","title":"Testing Mobile Apps (Jest, Testing Library, Maestro & AI QA)","url":"https://ihatereading.in/roadmap/vibe-coding-mobile-app-development/testing-mobile-apps","machineUrl":"https://ihatereading.in/roadmap/vibe-coding-mobile-app-development/testing-mobile-apps.json","summary":{"breadcrumb":"Vibe Coding Mobile App Roadmap (Expo, Tailwind & AI Agents) → Testing Mobile Apps (Jest, Testing Library, Maestro & AI QA)","purpose":"Test an AI-built Expo app: unit and component tests with Jest and Testing Library, end-to-end flows with Maestro, and AI-assisted QA checklists and prompts.","prerequisites":["AI Features, APIs & Payments"],"afterThisChapter":["Debugging & Reviewing AI-Generated Code"]},"agentLens":null,"topics":[{"id":"the-testing-pyramid","slug":"the-testing-pyramid","title":"The testing pyramid","level":"intermediate","category":null,"importance":null,"difficulty":"intermediate","learn":["Many fast unit tests for logic, some component tests for screens, and a few end-to-end flows for the critical paths (sign-in, core action, purchase)."],"why":["Without tests every new prompt risks silently breaking an earlier feature, and you only find out from one-star reviews."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Many fast unit tests for logic, some component tests for screens, and a few end-to-end flows for the critical paths (sign-in, core action, purchase).","example":null,"mentalModel":"Tests are the smoke detectors, sprinklers and fire drills of a building: cheap sensors everywhere, a few full evacuations of the important exits.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is The testing pyramid and when do you use it in a mobile app?"],"practice":["Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script."],"interview":["What should an end-to-end test cover in a mobile app?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://reactnative.dev/docs/testing-overview"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/50-react-interview-questions-frontend-developers-2026"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"jest-with-jest-expo","slug":"jest-with-jest-expo","title":"Jest with jest-expo","level":"intermediate","category":null,"importance":null,"difficulty":"intermediate","learn":["Jest runs unit tests in Node using the `jest-expo` preset, which mocks native modules so tests are fast."],"why":["Without tests every new prompt risks silently breaking an earlier feature, and you only find out from one-star reviews."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Jest runs unit tests in Node using the `jest-expo` preset, which mocks native modules so tests are fast.","example":null,"mentalModel":"Tests are the smoke detectors, sprinklers and fire drills of a building: cheap sensors everywhere, a few full evacuations of the important exits.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is Jest with jest-expo and when do you use it in a mobile app?"],"practice":["Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script."],"interview":["What should an end-to-end test cover in a mobile app?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://docs.expo.dev/develop/unit-testing/"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/50-react-interview-questions-frontend-developers-2026"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"react-native-testing-library","slug":"react-native-testing-library","title":"React Native Testing Library","level":"intermediate","category":null,"importance":null,"difficulty":"intermediate","learn":["Render components and query them like a user would, by text or role, then press and type."],"why":["Without tests every new prompt risks silently breaking an earlier feature, and you only find out from one-star reviews."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Render components and query them like a user would, by text or role, then press and type. It tests behaviour instead of implementation details.","example":null,"mentalModel":"Tests are the smoke detectors, sprinklers and fire drills of a building: cheap sensors everywhere, a few full evacuations of the important exits.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is React Native Testing Library and when do you use it in a mobile app?"],"practice":["Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script."],"interview":["What should an end-to-end test cover in a mobile app?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://callstack.github.io/react-native-testing-library/"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/50-react-interview-questions-frontend-developers-2026"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"end-to-end-with-maestro","slug":"end-to-end-with-maestro","title":"End-to-end with Maestro","level":"intermediate","category":null,"importance":null,"difficulty":"intermediate","learn":["Maestro drives a real build with simple YAML flows: launch, tap, type, assert."],"why":["Without tests every new prompt risks silently breaking an earlier feature, and you only find out from one-star reviews."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Maestro drives a real build with simple YAML flows: launch, tap, type, assert. It is easy for agents to write and for you to read.","example":null,"mentalModel":"Tests are the smoke detectors, sprinklers and fire drills of a building: cheap sensors everywhere, a few full evacuations of the important exits.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is End-to-end with Maestro and when do you use it in a mobile app?"],"practice":["Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script."],"interview":["What should an end-to-end test cover in a mobile app?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://docs.maestro.dev/"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/50-react-interview-questions-frontend-developers-2026"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"detox-as-an-alternative","slug":"detox-as-an-alternative","title":"Detox as an alternative","level":"intermediate","category":null,"importance":null,"difficulty":"intermediate","learn":["Detox is a grey-box E2E framework with deeper synchronisation but more setup."],"why":["Without tests every new prompt risks silently breaking an earlier feature, and you only find out from one-star reviews."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Detox is a grey-box E2E framework with deeper synchronisation but more setup. Choose it if you need that control.","example":null,"mentalModel":"Tests are the smoke detectors, sprinklers and fire drills of a building: cheap sensors everywhere, a few full evacuations of the important exits.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is Detox as an alternative and when do you use it in a mobile app?"],"practice":["Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script."],"interview":["What should an end-to-end test cover in a mobile app?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://wix.github.io/Detox/"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/50-react-interview-questions-frontend-developers-2026"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"ai-assisted-qa","slug":"ai-assisted-qa","title":"AI-assisted QA","level":"intermediate","category":null,"importance":null,"difficulty":"intermediate","learn":["Use agents to generate test cases from your spec, write edge-case tests and produce manual QA checklists, then run and review them yourself."],"why":["Without tests every new prompt risks silently breaking an earlier feature, and you only find out from one-star reviews."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Use agents to generate test cases from your spec, write edge-case tests and produce manual QA checklists, then run and review them yourself.","example":null,"mentalModel":"Tests are the smoke detectors, sprinklers and fire drills of a building: cheap sensors everywhere, a few full evacuations of the important exits.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is AI-assisted QA and when do you use it in a mobile app?"],"practice":["Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script."],"interview":["What should an end-to-end test cover in a mobile app?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://cursor.com/docs"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/50-react-interview-questions-frontend-developers-2026"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]},{"id":"device-matrix-and-manual-qa","slug":"device-matrix-and-manual-qa","title":"Device matrix and manual QA","level":"intermediate","category":null,"importance":null,"difficulty":"intermediate","learn":["Test at least one small and one large iPhone, a low-end and a recent Android phone, light and dark mode, and poor network conditions."],"why":["Without tests every new prompt risks silently breaking an earlier feature, and you only find out from one-star reviews."],"prerequisites":[],"nextTopics":[],"relatedTopics":[],"usedIn":[],"understand":{"summary":"Test at least one small and one large iPhone, a low-end and a recent Android phone, light and dark mode, and poor network conditions.","example":null,"mentalModel":"Tests are the smoke detectors, sprinklers and fire drills of a building: cheap sensors everywhere, a few full evacuations of the important exits.","howItWorks":null,"underTheHood":null,"misconceptions":[]},"questions":{"learning":["What is Device matrix and manual QA and when do you use it in a mobile app?"],"practice":["Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script."],"interview":["What should an end-to-end test cover in a mobile app?"],"advanced":[],"debugging":[],"comparison":[]},"projects":{"beginner":"Write tests for one utility, one component and one Maestro flow covering sign-in, and run them from a single npm script.","intermediate":null,"advanced":null},"commonMistakes":[],"bestPractices":[],"debug":null,"compare":[],"resources":{"official":["https://reactnative.dev/docs/debugging"],"tutorials":[],"videos":[],"websites":[],"youtube":[],"ihateReading":["/blogs/50-react-interview-questions-frontend-developers-2026"]},"agentLens":null,"skipIf":null,"build":null,"next":[],"prerequisite":[]}],"updatedAt":"2026-10-23T05:59:14.514Z"}