Swift Testing

Pattern di Swift Testing, tassonomia dei test double, e guida alla migrazione per suite basate su @Test.

di bocato · bocato/swift-testing-agent-skill

Promosso ★ 9.6/10

Swift Testing — Pattern di Swift Testing, tassonomia dei test double, e guida alla migrazione per suite basate su @Test.

Cosa fa

Codifica le convenzioni di Swift Testing (@Test/#expect/#require/@Suite), la tassonomia dei test double di Martin Fowler (correggendo l'abitudine diffusa di chiamare 'Mock' ogni stub), e le regole di posizionamento di fixture/mock, supportato da nove file di riferimento che coprono organizzazione, async, migrazione, test parametrizzati, e snapshot testing. Si attiva su parole chiave di Swift Testing, richieste di migrazione da XCTest, o domande su test-double/fixture/TDD nell'ambito Swift.

Rapporto di test

Ho chiesto una suite di test per un validatore di email più un mock di un repository: la versione con lo skill ha usato la parametrizzazione @Suite/@Test su 3-4 input ciascuno, ha correttamente rinominato l'ingenuo 'MockUserRepository' in uno 'SpyingStub' secondo la tassonomia di Fowler, e lo ha posizionato accanto al protocollo sotto #if DEBUG esattamente come impone lo skill — la baseline ha usato XCTest semplice e ha etichettato erroneamente lo stub come un mock.

Testato il: 2026-07-13 · Claude Code 2.x (agent harness)

Installazione

git clone https://github.com/bocato/swift-testing-agent-skill
cd swift-testing-agent-skill
mkdir -p ~/.claude/skills
cp -r swift-testing ~/.claude/skills/swift-testing

Comandi e prompt di esempio

  • /swift-testingPattern di Swift Testing, tassonomia dei test double, e guida alla migrazione per suite basate su @Test.

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Migrate these XCTest cases to Swift Testing with @Test and #expect
  • Should this test double be a stub or a mock in my Swift Testing suite
  • Write parameterized Swift Testing cases for this async function