Selam arkadaşlar 2 sorum olucak
Laravel testing ile testler yazıyorum ama
RefreshDatabase kullanıp her seferinde databaseyi sıfırlamak istediğimde database viewleri sıfırlamıyor ve xxx view zaten var gibi bir uyarı veriyor bunu nasıl halledebilirim ?
2. sorum ise auth için test yazdığımda sistemde 2FA var ve bu kod her seferinde değişiyor. Bu kod ile beraber testi nasıl yazabilirim emin olamadım. Son kodu veritabanından çekip yapmak gibi bir çözüm geldi aklıma ama ne kadar mantıklı bilemedim.
Yardımcı olabilirseniz sevinirim. İyi çalışmalar herkese
Laravel unit test
5
●96
- 24-08-2022, 10:38:57
- 24-08-2022, 10:48:15Veritabanını sıfırlamak için RefreshDatabase trait'i yerine IlluminateFoundationTestingDatabaseMigrations trait'ini kullanabilirsin. Böylece migration'ları da her defasında çalıştırır ama RefreshDatabase'e göre daha yavaştır. Auth testi için actingAs metodunu kullanabilirsin. $this->actingAs($user) gibi.
- 24-08-2022, 12:03:53Birinci sorum için şu şekilde bir çözüm ürettim en kolayı bu geldi. İşimi şimdilik görüyor.aenxious adlı üyeden alıntı: mesajı görüntüle
public function setUp(): void { parent::setUp(); Artisan::call('migrate:fresh --seed --drop-views'); }ActingAs mevcut bir üyeyi doğrulamak için basit bir yol sağlıyor ama ben 2fa ile beraber doğrulamak istiyorum amacım sadece doğrulamak değil. 2. sorum için şöyle bir çözüm ürettim doğrumu emin değilim hala araştırıyorum.
$user = User::find(2); $response = $this->post('/login', [ 'email' => $user->email, 'password' => 'Aa123321.', ]); $find = UserCode::orderBy('id' , 'desc')->first(); $response = $this->post('/2fa', [ 'code' => $find->code, ]); $this->assertAuthenticated(); - 24-08-2022, 18:12:31Veritabanı sıfırlamak için doğrusu budur.
https://laravel.com/docs/9.x/databas...fter-each-test
İki faktör için jetstream örneğini uygulayabilirsin.
https://github.com/laravel/jetstream...rollerTest.php