mcpField
M
mobile-app-testing

mobile-app-testing

github.com/aj-geddes测试与质量373825 次安装34 周前更新
代码仓库

关于 mobile-app-testing

这项技能用于规划和实施移动应用测试,适合开发 iOS 和 Android 应用的团队。内容涵盖单元、UI、集成和性能测试,并提供 React Native、XCTest 与 Espresso 参考指南。

主要功能

  1. 01单元、UI、集成和性能测试
  2. 02使用 Jest 与 Detox 测试 React Native
  3. 03使用 XCTest 测试 iOS 应用
  4. 04使用 Espresso 测试 Android 应用
  5. 05覆盖率与测试隔离建议

适用场景

  1. 01规划移动应用的测试覆盖范围
  2. 02自动化 iOS 和 Android 的关键 UI 流程
  3. 03检查后端集成及失败场景
  4. 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.md
ios-testing-with-xctest.md
performance-testing.md
react-native-testing-with-jest-detox.md
scripts/
scaffold-tests.sh
templates/
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