8 Bir Sonraki Geliştirme Projeniz için React Test Kitaplığı ve Yardımcı Programı
Yayınlanan: 2021-06-22Test etme, uygulamanıza herhangi bir ekstra özellik eklemez, ancak uygulamanızı üretime göndermeniz için size daha fazla güven verir.
Sanırım test etmeye zaten aşinasınız ve buraya React uygulamanız için test kitaplıkları hakkında bilgi edinmek için geldiniz. Eğer durum buysa, o zaman doğru yerdesiniz. Farklı kitaplık türlerine bakmadan önce, testin uygulama kalitenizi ve geliştirme sürenizi nasıl etkilediğini hızlıca görelim.
Test Etkisi
Bazılarınız, uygulama için test yazmanın zaman alan bir süreç olduğunu düşünebilir. Şimdilik bunu geçelim. Hayır, uygulamanız için testler yazmak zaman kaybı değil.
Diyelim ki herhangi bir testi olmayan bir uygulama geliştirdiniz. 100'den fazla işlevselliğe sahiptir. Önemli bir süre sonra, diyelim ki 3 ay. Müşterileriniz, daha önce geliştirdiğiniz 100 özellikten 5 yeni özellik eklemenizi ve 2 özelliği düzeltmenizi istiyor.
Herhangi bir probleminiz yok ve hepsini tamamlayıp kodunuzu üretime gönderdiniz (her zamanki gibi testler yapmadan). Birkaç gün sonra müvekkiliniz eski özelliklerin bozulduğunu söyleyerek tekrar size geldi. Ve nedenini anlamadın mı? Yine sorunları çözmek için önemli miktarda zaman harcadınız. Sorunları çözmeyi tamamladıktan sonra kendinize olan güveninizi kaybetmeye başladınız.
Bu güven nasıl kazanılır?

Ve sorunları çözmek için harcadığınız fazladan zamandan tasarruf edin. Bir şey her şeyi doğru yapacak, yani test etmek.
Diyelim ki uygulamanız için testler yazdınız. Yeni özellikler geliştirdiğinizde veya eski özellikleri değiştirdiğinizde tekrar testler yapacaksınız. Bu durumda, ürünün kendisine gitmeden önce sorunlar hakkında bilgi sahibi olacaksınız. Çok zaman kazandırır ve uygulamanızın kalitesinden emin olmanızı sağlar.
Şimdi, bir sonraki React projeniz için farklı test kitaplıklarına bakmanın zamanı geldi.
Test Kitaplığı
Test Kitaplığı, UI bileşenlerini test etmenize yardımcı olan bir grup pakettir. Odak noktamız React Testing Libray'dir.
Tepki test kitaplığı, React DOM'nin test edilmesi için eksiksiz bir yardımcı program seti içeren hafif bir kitaplıktır. Kütüphanenin uygulama detaylarını vermeden reaksiyon bileşenlerini test etmemizi sağlar. Testi kolaylaştırarak daha fazla güven kazanmamıza yardımcı olur.
Çoğu zaman, Jest test kitaplığı ile birlikte çalışır. Test için basit yöntemler ve araçlar sunar ve testte en iyi uygulamaları takip etmemiz için bize rehberlik eder.
Tepki testi kitaplığının bazı özellikleri şunlardır:
- Bileşenlerin iç durumunun test edilmesini umursamıyor.
- Bileşenlerin oluşturma sonucunun test edilmesi.
- Sınıfların örnekleri yerine DOM düğümlerini test eder.
- Kitaplıktaki DOM öğelerine erişmek için özel bir yol sağlar.
- Kullanıcı arayüzünün düzgün çalıştığından emin olur.
- Büyük bir topluluk desteğine sahiptir.
Alay
Jest, JavaScript ve TypeScript kodunu test etmek için bir test çerçevesidir. Ve ön uç kitaplıklarla iyi bir şekilde bütünleşir. Facebook tarafından geliştirilmekte ve sürdürülmektedir. React ekibi, React uygulamasının test edilmesi için bunu önerir.

Etrafındaki diğer tüm test kitaplıklarından daha fazla indirmeye sahiptir. Jest, reaksiyon testi kitaplığı ile birlikte, React testi için daha güçlü olacaktır. Ve çoğu geliştirici, testleri için bu kombinasyonu kullanıyor.
Jest'in bazı özellikleri şunlardır:
- Testler birbirinden izole edilmiştir.
- Kod kapsamı sağlar.
- Hızlı.
- İşlevlerle alay etmenin bir yolunu sağlar.
- Test için farklı türde istisnalar sunar.
Enzim
Enzim, React bileşenlerinin test edilmesi için bir test aracıdır. React bileşeninin oluşturduğu çıktıyı geçmemize ve kolayca manipüle etmemize olanak tanır. Airbnb tarafından oluşturulmuştur.
React bileşenlerinin test edilmesi için jest, moka, yasemin vb. gibi diğer test koşucularıyla birlikte kullanılmalıdır. React bileşenlerini işlemek ve test etmek için ek ve kolay yollar sağlar. Ve sadece React kütüphanesi ile çalışır.
moka
Mocha, testi basitleştiren bir test çerçevesidir. NodeJS üzerinde çalışır. Test çalıştırıcısı, React testi için diğer test kitaplıklarıyla birlikte çalışır.

Mocha'nın bazı özellikleri şunlardır:
- Test kapsamı raporları sağlar.
- Yapılandırma dosyasıyla tamamen yapılandırılabilir.
- Zaman uyumsuz test zaman aşımı desteği.
- Testlere dayalı zaman aşımları.
- Hatta sizin için yavaş testleri vurgular.
Mocha'nın ana sayfasında sizi bekleyen daha bir çok özellik var.
Karma
Karma, uygulamanız için bir test ortamıdır. Testleri gerçek tarayıcılarda ve cihazlarda (cep telefonları, tabletler ve masaüstü bilgisayarlar) çalıştırmamıza olanak tanır. Geliştiricilere test için farklı ortamlar sağlamayı amaçlamaktadır.
Karma'nın bazı özellikleri şunlardır:
- Kodunuzu gerçek cihazlarda test edin.
- Kodumuzu PhantomJS gibi başsız bir ortamda test etmemizi sağlar.
- Karma'yı Jenkins , Travis ve Semaphore gibi CI/CD araçlarıyla entegre edebilirsiniz.
- Mocha , Jasmine vb. gibi diğer test çerçeveleri ile kolayca entegre edebilirsiniz.
- IDE ile hata ayıklama kolaylaştı.
Yasemin
Jasmine, JavaScript için Davranış Odaklı Geliştirme (BDD) test çerçevesidir. Kodu test etmek için DOM gerektirmez. Jasmine, NodeJS kodunun test edilmesi için tasarlanmıştır. React'i Jasmine ve diğer test kütüphaneleri ile test edebiliriz.
Yasemin'in bazı özellikleri şunlardır:
- Test yazmak için temiz ve kolay sözdizimine sahiptir.
- Hem ön uç hem de arka uç için testler yazabiliriz.
- Yasemin çekirdeğinin herhangi bir bağımlılığı yoktur, bu da onu hızlandırır.
çay
Chai bir iddia kitaplığıdır. Diğer herhangi bir JavaScript test kitaplığı ile eşleştirilebilir. Chai, must , assert ve hariç tutma gibi işlevler sağlar.
selvi
Cypress, JavaScript'in uçtan uca test çerçevesidir. Tarayıcıda testler kurmamıza, yazmamıza, çalıştırmamıza ve hata ayıklamamıza izin verir. Yazdığınız her testin durumu hakkında size ayrıntılı bir rapor veren bir gösterge panosuna sahiptir.
Cypress testi, geliştirme araçlarına da erişmenizi sağlayan gerçek bir tarayıcı ortamında çalıştırır. Uygulamadaki bir özelliğin uçtan uca akışını test etmek için kullanılır.
Cypress'in bazı özellikleri şunlardır:
- Her adımın anlık görüntüsünü görebilirsiniz. Testleri çalıştırırken her adımın anlık görüntüsünü alır.
- DevTools ile hata ayıklamayı kolaylaştırdı.
- Cypress, React gerçek zamanlı özelliğine benzer şekilde testlerde değişiklik yaptığınızda testleri otomatik olarak yeniden çalıştırır.
- Testler, wait ifadesini kullanmadan çıktıyı otomatik olarak bekleyecektir.
Çözüm
Test yazmak, sizin ve uygulamanız için iyidir. Zor zamanlarda işleri kolaylaştırır. İçinde bahane aramayın. Makalelerdeki test kitaplıklarının sırası önemli değildir. Sadece sayım için. Hiçbir kütüphane diğerlerinden daha düşük değildir. Her kütüphanenin kendine göre avantajları ve dezavantajları vardır.
React Testing Library ve Jest kullanarak React uygulamasının tüm özelliklerini çoğunlukla test edebiliriz. Ve React topluluğu üyelerinin çoğu tarafından tavsiye edilir. Bu ikisini kullanmanız zorunlu bir şey değil. Yeni başlayan biriyseniz, deneyebilirsiniz. React uygulamanız için daha spesifik bir şey arıyorsanız, her bir kitaplığı gözden geçirin.
Mutlu Testler