Test yazmak nedir?
Cevap; Kodun davranışını her an izleyebilmektir.
Büyük projelerde test yazmak kaçınılmaz bir gerçektir.Çünkü kod büyüdükçe kontrol edilebilmesi zayıflar ve bunu insan yerine makineye bırakmak zorunda kalırsın.işte makine senin yerine yazdığın tüm olasılıkları her an tespit eder ve sana hata varsa söyler.Travis etc.. gibi hizmetler yazdığın kodu belirlediğin her zaman diliminde yada her 5 dakikada bir senin yerine çalıştırırlar ve sana mail atarlar.
Test yazmak hayat kurtarır.
public function testIndex()
{
$this->assertTrue(true,request()->isFromTrustedProxy());
}
böyle bir test yazdıgınızda.
vendor/bin/phpunit
ile çalıştırırsınız.ve size request methodu ile proxynin güvenilir olup olmadığını söyler sana.eğer güvenilir değilse hata basar.cunku condition olarak true bekliyor testimiz.
Bunun gibi 100 lerce 1000 lerce test..her olasılık her durum yazılmalı.
Evet test yazmak zordur ama yapabileceğiniz bir şey yok.Kurumlar bu zamanı developera mutlak ölçüde azami olarak verebilmeli.
Aksi durumda,bir geliştirme yaptığınızda kodunuzun hangi kısımları etkilenir diye kara kara düşünürsünüz.
Bir geliştirme yaptım ama her zaman doğru çalışır mı diye düşünürsünüz.
UnitTestler yazılmalı en basitinden.Yazmak zorundasın.Yazdıgın endpointe istek attır ve doğru değerler dönüyor mu diye testine bunları belirtmek zorundasın.
$content = $this->get('/users');
$this->assertSame(200,$content->status);
users endpointine istek atsın ve statusu 200 beklesin.Yaz bunu birde getle postla parametreler gönderttir farazi.
200 harici gelirse demek ki bir yerde bir sıkıntı var diye hata atsın sana...
sende gir belirtilen satıra kodunu refactor et.
-------
Neyse sürer gider,test yazmaya alışın.
Test yazınca sevdiklerinize daha çok zaman ayırırsınız.