본문으로 건너뛰기
cccskills
무료GitHub에 공개

nw-test-refactoring-catalog

Detailed refactoring mechanics with step-by-step procedures, and test code smell catalog with detection patterns and before/after examples

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md3.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Test Refactoring Catalog

Test Code Smells (Full Detail)

L1 Readability Smells

Obscure Test

  • Problem: test name does not reveal business scenario being tested
  • Detection: generic names like Test1(), ProcessOrderTest(), or names requiring reading test body to understand
  • Solution: rename to Given_When_Then or should_do_expected_thing_when_condition format
Before: public void Test1() { /* ... */ }
After:  public void ProcessOrder_PremiumCustomer_AppliesCorrectDiscount() { /* ... */ }

Hard-Coded Test Data

  • Problem: magic numbers and strings obscure business rules being tested
  • Detection: numbers like 1000, 0.15, strings without explanation
  • Solution: extract to named constants that reveal business meaning
Before: Assert.Equal(850, result.Total);  // What discount?
After:  const decimal EXPECTED_TOTAL = 1000 * (1 - 0.15m);
        Assert.Equal(EXPECTED_TOTAL, result.Total);

Assertion Roulette

  • Problem: multiple assertions without messages make failures unclear
  • Detection: multiple Assert.* calls without message parameter
  • Solution: add descriptive message to each assertion explaining expected business outcome

L2 Complexity Smells

Eager Test

  • Problem: single test verifies multiple unrelated behaviors
  • Detection: multiple arrange/act/assert cycles or assertions testing different concerns
  • Solution: split into focused tests, one per business scenario
Before: ProcessOrderTest() { /* tests discount AND shipping AND tax */ }
After:  ProcessOrder_AppliesDiscount()
        ProcessOrder_CalculatesShipping()
        ProcessOrder_CalculatesTax()

Prefer parameterized tests for variations of the same behavior.

Test Code Duplication

  • Problem: repeated test setup logic across multiple tests
  • Detection: same object creation, mock setup, or data builders copied in 3+ tests
  • Solution: extract helper methods
Extract: CreatePremiumCustomer(), CreateHighValueOrder()

Conditional Test Logic

  • Problem: if/switch statements in test code make tests non-deterministic
  • Detection: if, switch, for loops in test methods
  • Solution: replace with parameterized tests
# Before: if/else in test
# After:
@pytest.mark.parametrize("input,expected", [...])
def test_behavior(input, expected): ...

L3 Organization Smells

Mystery Guest

  • Problem: test depends on external files or hidden dependencies
  • Detection: File.ReadAllText, database queries, external config in tests
  • Solution: inline test data or make dependency explicit in test setup

Test Class Bloat

  • Problem: single test class contains tests for multiple unrelated concerns
  • Detection: test class with 15+ tests covering different features
  • Solution: split by feature
Before: UserServiceTests (31 tests)
After:  UserAuthTests, UserProfileTests, UserNotificationTests

General Fixture

  • Problem: shared fixture used by tests with different needs
  • Detection: SetUp method creates data used by only some tests
  • Solution: move to per-test setup methods or test-specific fixtures

For production code refactoring techniques and mechanics, load the progressive-refactoring skill.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Review dimensions for validating agent quality - template compliance, safety, testing, and priority validation

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

nWave-ai/nWave6212026년 9월 16일 업데이트

Review dimensions for validating agent quality - template compliance, safety, testing, and priority validation

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

nWave-ai/nWave6212026년 9월 16일 업데이트

Review dimensions for acceptance test quality - happy path bias, GWT compliance, business language purity, coverage completeness, walking skeleton user-centricity, priority validation, observable behavior assertions, traceability coverage, and walking skeleton boundary proof

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

nWave-ai/nWave6212026년 9월 16일 업데이트

Detailed 5-phase workflow for creating agents - from requirements analysis through validation and iterative refinement

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

nWave-ai/nWave6212026년 9월 16일 업데이트

5-layer testing approach for agent validation including adversarial testing, security validation, and prompt injection resistance

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

nWave-ai/nWave6212026년 9월 16일 업데이트

Architectural style selection decision matrices, trade-off analysis, structural enforcement rules, and combination patterns. Load when choosing or evaluating architecture styles.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

nWave-ai/nWave6212026년 9월 16일 업데이트

nWave-ai의 스킬 모두 보기

이 스킬의 문제 신고