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

unit-testing单元测试

Agent Skill

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

总安装

465

周安装

19

GitHub Stars

218

下载量

149
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/leavesfly/jimi --skill unit-testing

简介

unit-testing 用于辅助测试设计、自动化测试、用例整理和回归验证,适合编写单元测试、端到端测试或根据失败日志定位问题。

  • 它能帮助 Agent 生成测试计划、维护夹具数据,并区分本地模拟、测试环境与生产环境。
  • 使用时需确认项目测试框架、运行命令和夹具路径,避免为了通过测试而破坏真实逻辑。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

单元测试技能包

编写高质量单元测试的专业指南,基于JUnit 5和Mockito框架。

测试原则

  1. 测试独立性:每个测试用例应独立运行,不依赖其他测试的执行顺序或结果
  2. 单一职责:每个测试只验证一个具体的行为或场景
  3. 命名清晰:测试方法名应清楚描述测试场景,推荐格式:方法名_测试场景_期望结果
  4. 覆盖全面:包括正常场景、边界条件、异常情况三个维度

测试结构(AAA模式)

每个测试用例应遵循Arrange-Act-Assert三段式结构:

@Test
void calculateTotal_withValidItems_returnsCorrectSum() {
    // Arrange - 准备测试数据和依赖
    List<Item> items = Arrays.asList(
        new Item("A", 10.0),
        new Item("B", 20.0)
    );
    Calculator calculator = new Calculator();

    // Act - 执行被测试的方法
    double result = calculator.calculateTotal(items);

    // Assert - 验证结果是否符合期望
    assertEquals(30.0, result, 0.001);
}

常用断言

JUnit 5断言

  • assertEquals(expected, actual) - 验证相等性
  • assertNotNull(actual) - 验证非空
  • assertTrue(condition) / assertFalse(condition) - 验证布尔条件
  • assertThrows(Exception.class, () -> {...}) - 验证异常抛出
  • assertAll() - 批量断言,全部执行
  • assertTimeout(duration, () -> {...}) - 验证执行时间

AssertJ流式断言(推荐)

assertThat(result)
    .isNotNull()
    .isInstanceOf(User.class)
    .extracting(User::getName)
    .isEqualTo("张三");

Mock使用指南

基本Mock

@ExtendWith(MockitoExtension.class)
class UserServiceTest {

    @Mock
    private UserRepository userRepository;

    @InjectMocks
    private UserService userService;

    @Test
    void getUser_whenExists_returnsUser() {
        // 定义Mock行为
        when(userRepository.findById(1L))
            .thenReturn(Optional.of(new User("张三")));

        // 执行测试
        User user = userService.getUser(1L);

        // 验证结果
        assertEquals("张三", user.getName());

        // 验证方法调用
        verify(userRepository).findById(1L);
    }
}

Mock注意事项

  • 使用@Mock注解标记依赖
  • 使用@InjectMocks自动注入Mock对象
  • 使用when().thenReturn()定义Mock返回值
  • 使用verify()验证方法是否被调用
  • 使用any()eq()等匹配器灵活匹配参数

边界条件测试清单

必须测试的边界条件:

  • 空值(null):输入参数为null的情况
  • 空集合:空列表、空Map、空字符串
  • 单元素集合:只有一个元素的集合
  • 大量数据:大数据量场景的性能和正确性
  • 边界值:最大值、最小值、0、-1等
  • 特殊字符:空格、换行符、特殊符号
  • 并发场景:多线程并发访问

测试覆盖策略

方法级覆盖

每个public方法至少包含以下测试:

  • 正常情况测试
  • 异常情况测试(参数非法、状态异常等)
  • 边界条件测试

分支覆盖

  • if/else的每个分支都应被测试覆盖
  • switch/case的每个case都应测试
  • 循环的边界条件(0次、1次、多次)

最佳实践

  1. 测试先行:可能的话采用TDD(测试驱动开发)
  2. 快速执行:单元测试应该快速执行,避免依赖外部资源
  3. 可重复:测试结果应该稳定可重复,不依赖执行环境
  4. 自动化:集成到CI/CD流程中自动执行
  5. 定期重构:测试代码也需要重构和维护

反模式(避免)

❌ 测试私有方法(应该测试public接口) ❌ 测试第三方库(应该Mock掉) ❌ 测试getter/setter(没有必要) ❌ 过度Mock(导致测试脆弱) ❌ 忽略异常测试

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

04

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

能力 5

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

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

平台分布

Claude Code

28.26%
按下载量换算42

OpenCode

21.24%
按下载量换算32

trae

16.95%
按下载量换算25

Codex

11.03%
按下载量换算16

Cursor

6.89%
按下载量换算10

Antigravity

3.78%
按下载量换算6

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

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

来源信息

继续浏览同类 Skills