Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问clear审计通过

react-native-testingReact native 测试

Agent Skill

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

总安装

1,842

周安装

76

GitHub Stars

7

下载量

602
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:react-native-testing(React native 测试)
来源仓库:https://github.com/pluginagentmarketplace/custom-plugin-react-native
仓库路径:skills/react-native-testing
安装命令:
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-react-native --skill react-native-testing
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-react-native --skill react-native-testing

简介

为 React Native 应用提供全面的测试覆盖方案,包括单元测试与集成测试支持。

  • 适用于保障组件行为正确性、模拟用户交互及验证跨平台兼容性场景。
  • 可生成测试用例模板、配置 Jest 或 Detox 环境并分析覆盖率报告。
  • 需配合项目使用的测试框架(如 Jest、React Testing Library)调整语法与断言方式。
  • 推荐在 CI/CD 流程中集成自动化测试以持续监控代码质量与稳定性。

SKILL.md

React Native Testing Skill

Learn comprehensive testing strategies including unit tests, component tests, and E2E tests.

Prerequisites

  • React Native basics
  • Understanding of async/await
  • Familiarity with testing concepts

Learning Objectives

After completing this skill, you will be able to:

  • Configure Jest for React Native
  • Write component tests with Testing Library
  • Mock native modules and APIs
  • Implement E2E tests with Detox/Maestro
  • Set up CI/CD test pipelines

Topics Covered

1. Jest Setup

// jest.config.js
module.exports = {
  preset: 'react-native',
  setupFilesAfterEnv: ['@testing-library/jest-native/extend-expect'],
  transformIgnorePatterns: [
    'node_modules/(?!(react-native|@react-native)/)',
  ],
};

2. Component Testing

import { render, screen, fireEvent } from '@testing-library/react-native';
import { Button } from './Button';

describe('Button', () => {
  it('calls onPress when pressed', () => {
    const onPress = jest.fn();
    render(<Button title="Click" onPress={onPress} />);

    fireEvent.press(screen.getByText('Click'));

    expect(onPress).toHaveBeenCalled();
  });
});

3. Hook Testing

import { renderHook, act } from '@testing-library/react-native';
import { useCounter } from './useCounter';

describe('useCounter', () => {
  it('increments count', () => {
    const { result } = renderHook(() => useCounter());

    act(() => result.current.increment());

    expect(result.current.count).toBe(1);
  });
});

4. Mocking

// Mock native module
jest.mock('@react-native-async-storage/async-storage', () => ({
  setItem: jest.fn(),
  getItem: jest.fn(),
}));

// Mock API
jest.mock('./api', () => ({
  fetchUser: jest.fn().mockResolvedValue({ id: '1', name: 'Test' }),
}));

5. E2E with Detox

describe('Login', () => {
  beforeAll(async () => {
    await device.launchApp();
  });

  it('should login successfully', async () => {
    await element(by.id('email')).typeText('test@example.com');
    await element(by.id('password')).typeText('password');
    await element(by.id('login-btn')).tap();

    await expect(element(by.id('home'))).toBeVisible();
  });
});

Quick Start Example

// ProductCard.test.tsx
import { render, screen, fireEvent } from '@testing-library/react-native';
import { ProductCard } from './ProductCard';

const mockProduct = {
  id: '1',
  title: 'Test Product',
  price: 99.99,
};

describe('ProductCard', () => {
  it('renders product info', () => {
    render(<ProductCard {...mockProduct} onPress={jest.fn()} />);

    expect(screen.getByText('Test Product')).toBeOnTheScreen();
    expect(screen.getByText('$99.99')).toBeOnTheScreen();
  });

  it('handles press', () => {
    const onPress = jest.fn();
    render(<ProductCard {...mockProduct} onPress={onPress} />);

    fireEvent.press(screen.getByRole('button'));

    expect(onPress).toHaveBeenCalledWith('1');
  });
});

Common Errors & Solutions

ErrorCauseSolution
"Cannot find module"Missing mockAdd jest.mock()
Async timeoutMissing awaitUse waitFor()
Element not foundWrong queryCheck testID/role

Validation Checklist

  • Unit tests pass
  • Component tests cover interactions
  • E2E tests complete flows
  • Coverage meets threshold (80%+)

Usage

Skill("react-native-testing")

Bonded Agent: 06-react-native-testing

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

27.94%
按下载量换算168

OpenCode

22.96%
按下载量换算138

Codex

16.96%
按下载量换算102

Cursor

12.3%
按下载量换算74

Gemini CLI

6.93%
按下载量换算42

Antigravity

2.94%
按下载量换算18

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills