Unit Test Yazan Prompt (Kenar Durumlar Dahil)
Test yazdırmak kolay, doğru test yazdırmak zor. Bu prompt kapsam tablosu kurar ve test edilmemesi gerekenleri de söyler.
Sen test odaklı geliştirme (TDD) konusunda deneyimli bir yazılım mühendisisin. Görevin, verdiğim kod için gerçekten değerli unit testler yazmak — kapsam yüzdesini şişiren değil, hatayı yakalayan testler. KOD [DİL] dilinde: ```[DİL] [KOD] ``` BAĞLAM - Framework / test kütüphanesi: [FRAMEWORK] - Kodun amacı: [AMAÇ] - Dış bağımlılıklar: [BAĞIMLILIK] - Bilinen riskli davranış: [RİSK] ÇIKTI 1 — DAVRANIŞ ENVANTERİ Koddaki her public fonksiyon/metot için: ne yapıyor, hangi girdiyi kabul ediyor, hangi çıktıyı/hata durumunu döndürüyor. Tablo halinde. ÇIKTI 2 — KAPSAM TABLOSU Her davranış için: test edilecek mi (evet/hayır), neden. Test edilmeyecekleri de yaz (ör. framework'e ait kod, saf getter). ÇIKTI 3 — TESTLER - Mutlu yol: en az 1 test. - Kenar durumlar: boş girdi, null/undefined, sınır değerler, çok büyük girdi, tek elemanlı liste, unicode/emoji. - Hata senaryoları: beklenen exception/error ve mesajı. - Her testin adı davranışı anlatsın: "returns empty array when input is null" gibi. "test1" yasak. - Arrange / Act / Assert blokları ayrılmış ve yorumlanmış. - Mock/stub gerekiyorsa neden gerektiğini tek satırda yaz; gereksiz mock yapma. ÇIKTI 4 — KAÇIRILAN RİSKLER Test edilemeyen ama risk taşıyan 2 nokta (zaman, rastgelelik, dosya sistemi, ağ) ve bunlar için önerilen yaklaşım (dependency injection, fake clock, vs). ÇIKTI 5 — ÇALIŞTIRMA Testleri çalıştırma komutu ve beklenen çıktı. KURALLAR - Koddaki gerçek davranışı test et; olmayan bir davranışı test etme. Kodda hata varsa testi ona göre değil, doğru davranışa göre yaz ve hatayı ayrıca bildir. - Snapshot testi önerme (kırılgan). - Test sayısını değil, yakaladığı hatayı önemse. 8 iyi test, 40 anlamsız testten iyidir. - Kod stilini projedekiyle aynı tut: [STİL].
Model, kodda olmayan bir davranışı test edebilir. Testleri çalıştırdıktan sonra başarısız olan varsa önce kodu değil testi kontrol edin — genelde test yanlış varsayım içeriyor.
02 — Değişkenler
Köşeli parantezleri doldurun
Prompt içindeki renkli alanlar sizin bilginizle değişecek yerlerdir. Hepsini doldurmak zorunda değilsiniz; boş bırakılan alanı model kendi varsayımıyla tamamlar.
[DİL]
Programlama dili
ör. TypeScript [KOD]
Test edilecek kod
ör. (kodu yapıştırın) [FRAMEWORK]
Test kütüphanesi
ör. Jest [AMAÇ]
Kodun amacı
ör. Fiyat hesaplama [BAĞIMLILIK]
Dış bağımlılıklar
ör. Kur servisi, veritabanı [RİSK]
Bilinen riskli davranış
ör. Yuvarlama hataları [STİL]
Kod stili
ör. Fonksiyonel, arrow function 03 — Kullanım
Adım adım nasıl kullanılır?
- 01
Fonksiyonun tamamını değil, test etmek istediğiniz birimini yapıştırın; bağımlılıklar ne kadar azsa test o kadar net.
- 02
Kodun amacını tek cümlede yazın — model davranış envanterini bundan çıkarıyor.
- 03
Testleri çalıştırın; başarısız olan varsa önce testin varsayımını kontrol edin.
- 04
Kapsam tablosundaki "test edilmeyecek" satırlarını silmeyin; gereksiz test yazmanın önüne geçiyor.
04 — Varyasyonlar
Aynı prompt, farklı sonuç
Tek bir prompt her işi çözmez. Aşağıdaki varyasyonlar aynı görevi farklı ton, uzunluk veya formatta ister — duruma göre birini seçin.
Python / pytest
Fixture ve parametrize.
Aynı testleri pytest ile yaz: parametrize kullan, fixture'larla bağımlılıkları ayır, pytest.raises ile hata durumlarını test et.
PHP / PHPUnit
Data provider.
Aynı testleri PHPUnit ile yaz: data provider kullan, setUp/tearDown düzenini kur, expectException ile hata durumlarını test et.
TDD önce test
Kod yokken.
Kod henüz yok, sadece fonksiyon imzası ve davranış tanımı var. Önce testleri yaz (TDD), sonra testleri geçecek minimal implementasyonu üret. İmza: [İMZA]
05 — İpuçları
Sonucu bir üst seviyeye taşıyan notlar
- Test adı davranışı anlatmıyorsa, 6 ay sonra başarısız olduğunda neyin bozulduğunu anlamazsınız.
- Snapshot testleri ilk gün kolay, üçüncü ayda kâbus olur; bu prompt onları önermez.
- Zaman ve rastgelelik test edilemez; fake clock veya seed enjeksiyonuyla test edilebilir hale getirin.
06 — Sık sorulanlar
Yazılım ve Kod hakkında sık sorulanlar
%100 kapsam gerekli mi?
Hayır. %80 kapsam, iyi seçilmiş testlerle %100 kapsamdan daha değerlidir. Kapsam tablosu tam bu ayrımı yapar: hangi davranış test edilmeli, hangisi edilmemeli.
Mock kullanmalı mıyım?
Sadece dış bağımlılık varsa (ağ, veritabanı, zaman). Kendi kodunuzu mock'lamak testi anlamsızlaştırır — test geçer ama üretimde çalışmaz.
Model yanlış test yazarsa?
Olur, özellikle kodun olmayan bir davranışını varsayarsa. Testleri çalıştırın; başarısız olan varsa önce testi okuyun. Kod doğruysa test yanlıştır.
Devamı
Bunlar da işinize yarar
Kod Yazma Promptu: Temiz, Test Edilebilir Fonksiyon
Belirsiz istek yerine sözleşme tanımlayan kod promptu: dil, sürüm, girdi/çıktı, hata durumları ve testler.
Orta ChatGPTClaudeKod Hatası Bulma (Debug) Promptu
“Neden çalışmıyor?” sorusunu sistematik bir teşhise çeviren, hipotez kurduran ve doğrulama adımı isteyen debug promptu.
Orta ChatGPTClaudeKod Refactor Promptu: Davranışı Bozmadan İyileştir
Çalışan kodu bozmadan sadeleştiren, her adımı geri alınabilir şekilde planlayan refactor promptu.
İleri ChatGPTClaudePython Kod Yazdırma Promptu (Çalışan ve Açıklamalı)
“Bana bir script yaz” demek eksik kod getirir. Bu prompt girdiyi, çıktıyı, hata durumunu ve testi baştan tanımlar.
OrtaBu sayfa CopyPromt editör ekibi tarafından hazırlandı, ilk yayın 24 Ekim 2026. Promptlar modelden bağımsız çalışacak şekilde yazılır; marka adları yalnızca tanımlama amacıyla anılır.