
Mobile App Testing
- 373 installs
- 202 repo stars
- Updated August 4, 2026
- secondsky/claude-skills
mobile-app-testing is a Claude Code plugin skill that implements mobile testing strategies across unit, integration, and E2E layers using Jest, XCTest, JUnit, Detox, Espresso, and Appium for React Native, iOS, and Androi
About
mobile-app-testing is a Claude Code plugin skill from secondsky/claude-skills that implements comprehensive mobile testing strategies for React Native, iOS, and Android applications. It maps a testing pyramid allocating roughly 70% unit tests (Jest, XCTest, JUnit), 20% integration tests (Detox, Espresso), and 10% E2E tests (Appium, Detox). The skill provides framework setup guidance, example login-flow Detox specs, flaky-test debugging, device-farm CI integration, and platform-specific error resolution. Developers reach for mobile-app-testing when setting up test infrastructure, writing E2E automation, encountering flaky selectors, or configuring cross-platform mobile CI pipelines. It recommends testID and accessibility-label conventions, mocking external dependencies, and maintaining above 80% code coverage targets for business logic.
- mobile-app-testing
Mobile App Testing by the numbers
- 373 all-time installs (skills.sh)
- +16 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #1,149 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/secondsky/claude-skills --skill mobile-app-testingAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 373 |
|---|---|
| repo stars | ★ 202 |
| Last updated | August 4, 2026 |
| Repository | secondsky/claude-skills ↗ |
How do you set up mobile app test automation?
Use mobile-app-testing for development tasks
Who is it for?
Mobile developers building React Native, iOS, or Android test infrastructure with Jest, Detox, Espresso, or Appium across unit, integration, and E2E layers.
Skip if: Backend-only API projects or web-only applications without native mobile UI components to automate.
When should I use this skill?
User encounters flaky mobile tests, needs Detox/Appium E2E setup, or asks about mobile testing pyramid, device farms, or platform-specific test errors.
What you get
Unit test suites, Detox/Espresso integration specs, Appium E2E flows, and CI device-farm configurations.
- Unit test suites
- E2E automation specs
- CI test pipeline config
By the numbers
- Testing pyramid targets 70% unit, 20% integration, 10% E2E coverage split
- Recommends >80% code coverage for business logic
- Covers 6 frameworks: Jest, XCTest, JUnit, Detox, Espresso, Appium
Files
Mobile App Testing
Implement comprehensive testing strategies for mobile applications.
Testing Pyramid
| Level | Tools | Coverage |
|---|---|---|
| Unit | Jest, XCTest, JUnit | 70% |
| Integration | Detox, Espresso | 20% |
| E2E | Appium, Detox | 10% |
React Native (Jest + Detox)
// Unit test
describe('CartService', () => {
it('calculates total correctly', () => {
const cart = new CartService();
cart.addItem({ price: 10, quantity: 2 });
expect(cart.getTotal()).toBe(20);
});
});
// E2E test (Detox)
describe('Login flow', () => {
beforeEach(async () => {
await device.reloadReactNative();
});
it('should login successfully', async () => {
await element(by.id('email-input')).typeText('user@example.com');
await element(by.id('password-input')).typeText('password123');
await element(by.id('login-button')).tap();
await expect(element(by.id('dashboard'))).toBeVisible();
});
});iOS (XCTest)
func testLoginSuccess() {
let app = XCUIApplication()
app.launch()
app.textFields["email"].tap()
app.textFields["email"].typeText("user@example.com")
app.secureTextFields["password"].typeText("password123")
app.buttons["Login"].tap()
XCTAssertTrue(app.staticTexts["Welcome"].exists)
}Android (Espresso)
@Test
fun loginSuccess() {
onView(withId(R.id.email)).perform(typeText("user@example.com"))
onView(withId(R.id.password)).perform(typeText("password123"))
onView(withId(R.id.loginButton)).perform(click())
onView(withId(R.id.dashboard)).check(matches(isDisplayed()))
}Best Practices
- Test business logic first (unit tests)
- Mock external dependencies
- Test both success and failure paths
- Automate critical user flows
- Maintain >80% code coverage
- Test on real devices periodically
Avoid
- Testing implementation details
- Hardcoded test data
- Interdependent tests
- Skipping error case testing
Related skills
How it compares
Pick mobile-app-testing for native and React Native pyramid strategy; use generic web E2E skills when testing browser-only applications without iOS or Android targets.
FAQ
Which tools does mobile-app-testing recommend?
mobile-app-testing maps a testing pyramid using Jest, XCTest, and JUnit for unit tests (70%), Detox and Espresso for integration (20%), and Appium and Detox for E2E tests (10%) on React Native, iOS, and Android.
How does mobile-app-testing handle flaky tests?
mobile-app-testing addresses flaky mobile tests through improved testID selectors, retry strategies, device-farm configuration, and platform-specific debugging for Detox, Espresso, and Appium automation failures.