移动/游戏
移动应用测试策略:用单元测试、UI…
为移动应用(React Native/iOS/Android)建立单元、集成、E2E 分层测试体系并规避常见测试反模式时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
移动应用测试策略:用单元测试、UI 自动通用
解决思路
- 按测试金字塔分配覆盖比例:单元测试(Jest、XCTest、JUnit)占 70%,集成测试(Detox、Espresso)占 20%,E2E 测试(Appium、Detox)占 10%。
- React Native 单元测试用 Jest:describe/it 中实例化服务类,调用其方法(如 addItem)后用 expect(...).toBe(...) 断言结果。
- React Native E2E 测试用 Detox:beforeEach 中 await device.reloadReactNative() 重置应用,再用 element(by.id('...')).typeText(...) 输入、.tap() 点击,最后用 await expect(element(by.id('...'))).toBeVisible() 断言页面可见。
- iOS 用 XCTest:创建 XCUIApplication 并 app.launch(),通过 app.textFields["..."].tap()/typeText(...)、app.secureTextFields["..."].typeText(...)、app.buttons["..."].tap() 操作,再用 XCTAssertTrue(app.staticTexts["..."].exists) 断言。
- Android 用 Espresso:用 onView(withId(R.id.xxx)).perform(typeText(...)/click()) 执行操作,再用 onView(withId(R.id.xxx)).check(matches(isDisplayed())) 断言。
- 优先为业务逻辑编写单元测试。
- Mock 掉外部依赖。
- 同时测试成功路径和失败路径。
- 对关键用户流程做自动化测试。
- 保持代码覆盖率高于 80%。
- 定期在真机上测试。
适用边界 · 注意事项
- 测试实现细节而非行为。
- 使用硬编码的测试数据。
- 编写相互依赖的测试。
- 跳过错误场景的测试。