关于 mobile-app-testing
这项技能用于规划和实施移动应用测试,适合开发 iOS 和 Android 应用的团队。内容涵盖单元、UI、集成和性能测试,并提供 React Native、XCTest 与 Espresso 参考指南。
主要功能
- 01单元、UI、集成和性能测试
- 02使用 Jest 与 Detox 测试 React Native
- 03使用 XCTest 测试 iOS 应用
- 04使用 Espresso 测试 Android 应用
- 05覆盖率与测试隔离建议
适用场景
- 01规划移动应用的测试覆盖范围
- 02自动化 iOS 和 Android 的关键 UI 流程
- 03检查后端集成及失败场景
- 04在发布前发现性能回退
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill mobile-app-testing安装后在 Claude Code 中输入/mobile-app-testing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/android-testing-with-espresso.mdios-testing-with-xctest.mdperformance-testing.mdreact-native-testing-with-jest-detox.mdscripts/scaffold-tests.shtemplates/test-template.js详细介绍
移动应用测试
目录
概述
为移动应用制定全面的测试策略,包括单元测试、UI 测试、集成测试和性能测试。
适用场景
- 创建测试覆盖充分且可靠的移动应用
- 自动化测试 iOS 和 Android 上的 UI
- 性能测试与优化
- 与后端服务进行集成测试
- 发布前进行回归测试
快速入门
最简可运行示例:
// Unit test with Jest
import { calculate } from "../utils/math";
describe("Math utilities", () => {
test("should add two numbers", () => {
expect(calculate.add(2, 3)).toBe(5);
});
test("should handle negative numbers", () => {
expect(calculate.add(-2, 3)).toBe(1);
});
});
// Component unit test
import React from "react";
import { render, screen } from "@testing-library/react-native";
import { UserProfile } from "../components/UserProfile";
describe("UserProfile Component", () => {
test("renders user name correctly", () => {
const mockUser = { id: "1", name: "John Doe", email: "[email protected]" };
render(<UserProfile user={mockUser} />);
expect(screen.getByText("John Doe")).toBeTruthy();
});
// ... (see reference guides for full implementation)
参考指南
references/ 目录中的详细实现:
| 指南 | 内容 |
|---|---|
| 使用 Jest 和 Detox 测试 React Native | 使用 Jest 和 Detox 测试 React Native |
| 使用 XCTest 测试 iOS | 使用 XCTest 测试 iOS |
| 使用 Espresso 测试 Android | 使用 Espresso 测试 Android |
| 性能测试 | 性能测试 |
最佳实践
✅ 应该
- 优先为业务逻辑编写测试
- 使用依赖注入提高可测试性
- 模拟外部 API 调用
- 测试成功和失败两种路径
- 为关键流程自动化 UI 测试
- 在真实设备上运行测试
- 在目标设备上测量性能
- 保持测试隔离且相互独立
- 使用有意义的测试名称
- 将代码覆盖率保持在 80% 以上
❌ 不应该
- 跳过对 UI 关键流程的测试
- 使用硬编码的测试数据
- 忽略性能回归
- 测试实现细节
- 编写不稳定或不可靠的测试
- 跳过在实际设备上的测试
- 忽略无障碍测试
- 创建相互依赖的测试
- 不模拟 API 就进行测试
- 部署未经测试的代码
评论
支持 Markdown