SuperAPI AI 工具集

testing-unit

测试与质量

查看项目

更新于 10-16 09:53

技能介绍

用途:协助编写单元测试,覆盖 JavaScript 的 Jest/Vitest、Python 的 pytest、Go 的 testify、Ruby 的 RSpec、Swift 的 XCTest 与 Java 的 JUnit5,重点在模拟依赖、创建 stub 并保证测试隔离,以便在受控环境中验证代码行为。适用于编写新测试、调试已有测试、需要隔离的重构、TDD 流程,以及 mock 外部 API 或数据库。

主要能力:Mocking,例如 Jest 用 jest.mock('module') 替换真实实现;Stubbing,例如 pytest 用 monkeypatch.setattr() 伪造对象方法;隔离,例如 Go testify 无副作用断言、JUnit5 用 @TempDir 隔离文件操作;框架特性,如 Jest expect().toBe()、pytest fixture 做 setup/teardown、RSpec 的 double、XCTest 的 setUp()、JUnit5 的 @Mock 注解。配置方面可用 Jest 的 jest.config.js(如 { testEnvironment: 'node', setupFilesAfterEnv: ['<rootDir>/setupTests.js'] })和 pytest.ini([pytest] addopts = -v)。

使用方式:先识别要 mock 的依赖(如 HTTP 调用),再在测试文件中建立 mock 或 stub,编写断言验证输出,用相应参数运行测试;TDD 则先写失败测试再实现。Jest 用 describe() 组织;pytest 用 fixture 共享 setup;通过 beforeEach() 或 @pytest.fixture(scope='function') 避免全局状态。命令示例:npx jest --watchAll、pytest tests/ -v --cov、go test -v ./...、rspec spec/、xcodebuild test、./gradlew test。集成上可嵌入 CI/CD(如 GitHub Actions 中 run: npm test),用 Istanbul 或 Coverage.py 做覆盖率,并通过环境变量传入密钥(如 $API_KEY、$DATABASE_URL)。

限制:资料未提供收费、价格、平台与效果信息;上述命令和代码片段为资料原文,需按实际项目调整,未提及的功能暂未提供。