mocking-stubbing by aj-geddes/useful-ai-prompts
npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill mocking-stubbing模拟与桩是在测试期间通过使用受控的测试替身替换依赖项来隔离代码单元的重要技术。这使得单元测试能够快速、可靠且专注地进行,而无需依赖数据库、API 或文件系统等外部系统。
最小工作示例:
// services/UserService.ts
import { UserRepository } from "./UserRepository";
import { EmailService } from "./EmailService";
export class UserService {
constructor(
private userRepository: UserRepository,
private emailService: EmailService,
) {}
async createUser(userData: CreateUserDto) {
const user = await this.userRepository.create(userData);
await this.emailService.sendWelcomeEmail(user.email, user.name);
return user;
}
async getUserStats(userId: string) {
const user = await this.userRepository.findById(userId);
if (!user) throw new Error("User not found");
const orderCount = await this.userRepository.getOrderCount(userId);
return { ...user, orderCount };
}
}
// ... (完整实现请参阅参考指南)
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
references/ 目录下的详细实现:
| 指南 | 内容 |
|---|---|
| Jest Mocking (JavaScript/TypeScript) | Jest 模拟 (JavaScript/TypeScript) |
| Python Mocking with unittest.mock | 使用 unittest.mock 进行 Python 模拟 |
| Mockito for Java | Java 的 Mockito |
| Advanced Mocking Patterns | 高级模拟模式 |
每周安装量
107
代码仓库
GitHub 星标数
121
首次出现
2026年1月21日
安全审计
安装于
opencode89
gemini-cli85
codex83
cursor82
claude-code82
github-copilot70
Mocking and stubbing are essential techniques for isolating units of code during testing by replacing dependencies with controlled test doubles. This enables fast, reliable, and focused unit tests that don't depend on external systems like databases, APIs, or file systems.
Minimal working example:
// services/UserService.ts
import { UserRepository } from "./UserRepository";
import { EmailService } from "./EmailService";
export class UserService {
constructor(
private userRepository: UserRepository,
private emailService: EmailService,
) {}
async createUser(userData: CreateUserDto) {
const user = await this.userRepository.create(userData);
await this.emailService.sendWelcomeEmail(user.email, user.name);
return user;
}
async getUserStats(userId: string) {
const user = await this.userRepository.findById(userId);
if (!user) throw new Error("User not found");
const orderCount = await this.userRepository.getOrderCount(userId);
return { ...user, orderCount };
}
}
// ... (see reference guides for full implementation)
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Jest Mocking (JavaScript/TypeScript) | Jest Mocking (JavaScript/TypeScript) |
| Python Mocking with unittest.mock | Python Mocking with unittest.mock |
| Mockito for Java | Mockito for Java |
| Advanced Mocking Patterns | Advanced Mocking Patterns |
Weekly Installs
107
Repository
GitHub Stars
121
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode89
gemini-cli85
codex83
cursor82
claude-code82
github-copilot70
Skills CLI 使用指南:AI Agent 技能包管理器安装与管理教程
43,100 周安装