Neden önce test

Test, uygulamanın tek bir davranışına bakan küçük bir kod parçası. Koddan önce yazılan bir test kırmızı yandığında sebebini de oku, çünkü çağırdığı fonksiyon henüz yazılmadığı için de kırmızı yanabilir. Testin sonradan yeşile dönmesi kodun o işi yaptığını gösterir.

Bir tur nasıl dönüyor

  • Ajan feat/ ile başlayan yeni bir branch, yani canlı uygulamayı etkilemeyen ayrı bir çalışma kolu açar.
  • Testi, test ettiği dosyanın yanına yazar.
  • pnpm test koşar ve test kırmızı yanar.
  • Eksiği sana tek cümleyle söyler.
  • Testi geçirecek en küçük değişikliği yapar.
  • pnpm test ile pnpm typecheck koşar. Yöntem ikisinin de geçmesini istiyor.
  • Neyin değiştiğini en fazla üç satırla anlatıp tarayıcına bakmanı ister.
  • Bir commit atar, yani dosyaların o anki halini kısa bir notla kaydeder.

Bu tur her özellik için bir kez dönüyor, önce liste için, sonra hesaplanan özellik için.

Kırmızı çıktıyı okumak

Bir kitap listesi düşün. Şablonun formu yalnız kitabın adını soruyor, test ise sayfa sayısını da görmek istiyor. Kırmızı çıktı aşağıdakine benzer.

× shows a book as unread with its page count after it is added
× does not add a book without a page count
Tests  6 failed | 2 passed (8)

× ile başlayan her satır kırmızı yanan bir test ve satırdaki cümle testin adı. İlki eklenen kitabın sayfa sayısıyla ve okunmamış olarak görünmesini, ikincisi sayfa sayısı boşken kitabın eklenmemesini istiyor.

Son satır özet. Sekiz testten altısı kırmızı, ikisi yeşil.

Ajan bunu tek cümleye çevirir ve o cümlede testin ne istediği ile uygulamanın neyi henüz yapmadığı yazar. Test adları İngilizce, anlamadığın birini ajana sor.

Tur bitince

Ajanın turu kapatan mesajında iki şey olmalı, test çıktısı ve pnpm typecheck sonucu. Biri eksikse iste.

Test çıktısının sonundaki özet Tests N passed (N) gibi bir satır. failed kelimesi hiçbir yerde geçmemeli ve her testin başında yeşil bir işaret durmalı.

Test adlarını SPEC.md'deki kabul kriterleriyle yan yana koy. Her kritere bir test karşılık gelmeli.

Kolay yapılan hata

pnpm test yeşilken uygulama yine de bozuk olabilir, çünkü testleri koşan araç tiplere bakmıyor. Veri tipi, bir kaydın hangi alanlardan oluştuğunu tarif eden tanım.

Kitap listesinde kaydın şekli değişince şablonun "bu hafta eklenen" sayacını hesaplayan dosya eski şekle bağlı kalabilir. Bu kırılmayı pnpm typecheck yakalar. Yalnız pnpm test'e bakıp geçme.

Küçük görev

İlk tur bitince bir kağıda SPEC.md'deki liste kriterlerini alt alta yaz. Her birinin yanına onu karşılayan testin adını koy ve karşılığı olmayan bir kriter kalırsa ajana söyle.