在开发新功能、修复缺陷或重构时,按测试驱动流程生成高覆盖测试与代码。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "tdd-workflow" 技能: 1. 下载 https://raw.githubusercontent.com/affaan-m/ECC/main/docs/tr/skills/tdd-workflow/SKILL.md 2. 保存为 ~/.claude/skills/tdd-workflow/SKILL.md 3. 装好后重载技能,告诉我可以用了
请用测试驱动开发方式实现“用户注册”功能:先写失败的单元测试、集成测试和一个关键 E2E 场景,再逐步补齐实现代码,目标测试覆盖率 80% 以上。技术栈:Node.js、Express、PostgreSQL。
按 TDD 顺序给出的测试用例、实现代码、覆盖率目标和执行说明。
我有一个订单折扣计算错误的 bug。请先根据问题描述编写能复现 bug 的失败测试,再给出最小修复代码,并补充回归测试,确保类似边界条件不会再次出错。
包含复现测试、最小修复方案和补充回归测试的完整修复流程。
请帮我重构这段遗留支付模块代码。在不改变现有行为的前提下,先设计保护性测试覆盖核心逻辑,再逐步拆分函数、优化命名并降低耦合度,保留单元测试和集成测试说明。
包含保护性测试、分步重构建议和重构后代码结构的方案。
Bu skill tüm kod geliştirmenin kapsamlı test kapsamı ile TDD ilkelerini takip etmesini sağlar.
HER ZAMAN önce testleri yazın, sonra testleri geçmesi için kod uygulayın.
[Rol] olarak, [eylem] yapmak istiyorum, böylece [fayda] elde ederim
Örnek:
Kullanıcı olarak, marketleri semantik olarak aramak istiyorum,
böylece tam anahtar kelimeler olmasa bile ilgili marketleri bulabilirim.
Her kullanıcı hikayesi için kapsamlı test senaryoları oluşturun:
describe('Semantik Arama', () => {
it('sorgu için ilgili marketleri döndürür', async () => {
// Test implementasyonu
})
it('boş sorguyu zarif şekilde işler', async () => {
// Uç durumu test et
})
it('Redis kullanılamazsa substring aramaya geri döner', async () => {
// Fallback davranışını test et
})
it('sonuçları benzerlik skoruna göre sıralar', async () => {
// Sıralama mantığını test et
})
})
npm test
# Testler başarısız olmalı - henüz implement etmedik
Testleri geçmesi için minimal kod yazın:
// Testler tarafından yönlendirilen implementasyon
export async function searchMarkets(query: string) {
// Implementasyon buraya
}
npm test
# Testler artık geçmeli
Testleri yeşil tutarken kod kalitesini iyileştirin:
npm run test:coverage
# %80+ kapsam sağlandığını doğrula
import { render, screen, fireEvent } from '@testing-library/react'
import { Button } from './Button'
describe('Button Bileşeni', () => {
it('doğru metinle render eder', () => {
render(<Button>Tıkla</Button>)
expect(screen.getByText('Tıkla')).toBeInTheDocument()
})
it('tıklandığında onClick\'i çağırır', () => {
const handleClick = jest.fn()
render(<Button onClick={handleClick}>Tıkla</Button>)
fireEvent.click(screen.getByRole('button'))
expect(handleClick).toHaveBeenCalledTimes(1)
})
it('disabled prop true olduğunda devre dışı kalır', () => {
render(<Button disabled>Tıkla</Button>)
expect(screen.getByRole('button')).toBeDisabled()
})
})
import { NextRequest } from 'next/server'
import { GET } from './route'
describe('GET /api/markets', () => {
it('marketleri başarıyla döndürür', async () => {
const request = new NextRequest('http://localhost/api/markets')
const response = await GET(request)
const data = await response.json()
expect(response.status).toBe(200)
expect(data.success).toBe(true)
expect(Array.isArray(data.data)).toBe(true)
})
it('query parametrelerini validate eder', async () => {
const request = new NextRequest('http://localhost/api/markets?limit=invalid')
…
通过双评审智能体对结果进行对抗式校验,提升输出发布前的可靠性
通过测试驱动开发流程编写新功能、修复缺陷并安全重构代码。