Yazılım ve Kod Orta 3 dk okuma

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.

Çalışır: ChatGPTClaudeGeminiCopilot Güncellendi: 24 Ekim 2026
Prompt 1742 karakter · 7 değişken
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?

  1. 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.

  2. 02

    Kodun amacını tek cümlede yazın — model davranış envanterini bundan çıkarıyor.

  3. 03

    Testleri çalıştırın; başarısız olan varsa önce testin varsayımını kontrol edin.

  4. 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

Bu 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.