Laravel – PHPUnit

Aşağıdaki ya da benzeri komutlar yardımı ile bir laravel projesi ilk oluşturulduğu zaman, varsayılan olarak iki farklı test klasörü ve bir testcase dosyası gelmektedir.

laravel new <PROJECTNAME>

Manuel olarak oluşturmak tercih edildiyse, TestCase.php içerisine eklemeler yapılabilir. Veya bu dosya kullanılmayıp, testi yazacağımız dosya içerisine (örneğin tests/Unit/ExampleTest.php içerisine) extend methodu yardımyla PHPUnit/Framework/TestCase eklenebilir ve kullanılabilir.

Herhangi bir kurulum vb. yapmaya gerek olmaksızın, Laravel extend edildiği zaman, PHPUnit üzerinde çalıştırılan kodları algılayabilmektedir.

Gelen test klasörleri ise Unit ve Feature olmak üzere ikiye ayrılmaktadırlar. Unit klasörü altına küçük kod parçalarının kontrol edildiği testlerinizi yazabileceğiniz gibi, Feature klasörü ise daha büyük projelerde, daha geniş kapsamlı testlerin çalıştırılması için oluşturulmuştur.

Dilerseniz bu klasörleri ve dosyaları kullanabilir ya da “tests” ana klasörü altında olmak şartı ile, içeriye kendi tercihlerinize göre kategorilere ayırarak bir düzen oluşturabilirsiniz.

Aşağıdaki komutlar yardımı ile projenize testler oluşturulabilirsiniz:

php artisan make:test <TESTNAME> 
  • Projeniz içerisindeki class isimleri ‘Test’ kelimesi ile bitmelidir.

Fonksiyon isimleri için ise iki seçenek mevcuttur:

  • Her fonksiyonun başına ‘Test’ kelimesi eklenebilir.
  • /** @test */ fonksiyonun hemen üst kısmına eklenir.
  /** @test */
    public function word_usage(){
$this->assertTrue(true);
    }

Projeniz içerisindeki testlerde kullanılacak olan modeller için aşağıdaki komut yardımı ile modellerinizi oluşturabilirsiniz. ‘-m’ aynı zamanda bunlar için migrate işlemini de yapılmasını sağlamaktadır.

php artisan make:model <MODELNAME> -m

Testin tamamlanması için, projeye veri girişine kodlarınız içerisinde yer verebilrisiniz. Örneğin aşağıda yer alan fonksyionda, bir grup oluşturulduktan sonra içerisine iki user oluşturulmuş ve eklenmiştir.

Fakat daha fazla kullanıcı oluşturmanız gerekirse ya da bu kullanıcılar için yapılacak olan veri girişleri ile uğraşmak istemiyorsanız factory yardımcısı ile Faker kütüphanesini kullanarak, gerçek olmayan kullanıcı ve onların veri girişlerini oluşturabilmeniz (seed edebilmeniz) mümkündür.

$factory->define(Article::class, function (Faker $faker) {
    return [
        'title' => $faker->title
    ];
});
php artisan db:seed 

komutu ile database kayıtlarını ekleyebilirsiniz ya da tercih ederseniz, aşağıdaki komut yardımı ile kendiniz bir seeder oluşturabilirsiniz.

php artisan make:seeder

Daha sonra komut satırı üzerinden ”phpunit” ya da “vendor/bin/phpunit” ile testlerin çalışıp çalışmadığı kontrol edilebilir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.