Node'un sunduğu en iyi test işlevselliğini elde etmek için bu sınıfının en iyisi paketlere göz atın.
Test etme, siz onu göndermeden önce kodunuzla ilgili sorunları ve güvenlik açıklarını belirlediğinden, herhangi bir yazılım geliştirme sürecinin önemli bir parçasıdır.
Node.js ekosistemi, uygulamalarınızın güvenilirliğini, kalitesini ve performansını sağlamanıza yardımcı olacak çeşitli test paketleri sunar. Burada, Node.js ekosistemindeki ilk dört test paketini keşfedeceksiniz.
Jest, JavaScript kod tabanları için kullanımı kolay ve kapsamlı bir test çözümü sağlayan bir test çerçevesidir. Meta tarafından geliştirilen Jest, paralel test yürütme, kod kapsamı, yerleşik iddialar, alay etme ve anlık görüntü testi için eşleştiriciler, bu da onu güçlü ve çok yönlü bir test haline getirir çerçeve.
Aşağıdaki komutu çalıştırarak Jest'i kurabilirsiniz:
npm install --save-dev jest
İşte gösteren bir örnek Jest ile test etme bir sayının tek olup olmadığını kontrol eden bir işlev için:
betimlemek("garip", () => {
Ölçek("tek sayı girişi için true döndürür", () => {
beklemek (tek(3)).olmak(doğru);
});Ölçek("çift sayı için false döndürür", () => {
beklemek (tek(2)).olmak(YANLIŞ);
});Ölçek("tamsayı olmayan giriş için bir hata atar", () => {
beklemek(() => {
garip(3.5);
}).toFırlat("Giriş bir tamsayı değil");
});
Ölçek("sayısal olmayan giriş için bir hata atar", () => {
beklemek(() => {
garip("3");
}).toFırlat("Giriş bir sayı değil");
});
});
Yukarıdaki test paketini çalıştırdığınızda, Jest her bir testi yürütecek ve fonksiyonun çıktısını beklenen değerle karşılaştıracaktır. beklemek işlev ve olmak Ve atmak eşleştiriciler Çıktı beklendiği gibi değilse, Jest başarısız bir test bildirir ve ayrıntılı bir hata mesajı verir.
Jest ayrıca alaycı işlev uygulamaları için yerleşik desteğe sahiptir. Ek olarak, düzenli güncellemeler ve iyileştirmeler ile geniş bir aktif topluluğa sahiptir.
Mocha, JavaScript uygulamaları için testler yazmak için esnek ve genişletilebilir bir çözüm sağlayan bir JavaScript test çerçevesidir. Testleri tanımlamak için basit ve minimalist bir sözdizimi sunar.
Node.js'nin yerleşik yerleşikleri gibi çoklu onaylama kitaplıklarını destekler. ileri sürmek diğerleri arasında modül, Chai ve Should.js. Birden çok doğrulama kitaplığına yönelik bu destek, test kurulumunuzda esnekliği tercih ediyorsanız Mocha'yı ideal seçim haline getirir.
Aşağıdaki komutu çalıştırarak Mocha'yı kurabilirsiniz:
npm mocha'yı kur
İşte Mocha ve Node.js ile testi gösteren bir örnek ileri sürmek iki sayının toplamını döndüren bir işlev için modül:
sabit iddia = gerekmek('iddia');
betimlemek("Sayı ekle", işlev() {
BT("İki pozitif sayı topla", işlev() {
sabit sonuç = sayı ekle(3, 5);
iddia.strictEqual (sonuç, 8);
});
BT("Pozitif ve negatif bir sayı ekle", işlev() {
sabit sonuç = sayı ekle(3, -5);
iddia.strictEqual (sonuç, -2);
});
});
Yukarıdaki testi çalıştırdığınızda, Mocha her bir testi kendi içinde çalıştırır. BT bloklar. Mocha, her test için test işlevindeki kodu yürütür ve numara ekle belirli giriş değerleriyle işlev görür ve ardından ileri sürmek işlevin gerçek çıktısını beklenen çıktıyla karşılaştırmak için modül. Test başarısız olursa, Mocha sonucu başarısız olarak bildirir ve beklenen ve gerçek çıktı değerleri hakkında bilgi verir.
Mocha'nın ana avantajlarından biri, kendi iddia kitaplıklarınızı, raportörlerinizi ve ihtiyaçlarınıza göre diğer yapılandırmaları seçmenize izin verdiği için esnekliğidir. Ancak Mocha, alay etme ve anlık görüntü testi gibi özellikleri kutudan çıkar çıkmaz içermediği için ek kurulum gerektirir. Jest ile karşılaştırıldığında Mocha, benzer özelliklere ulaşmak için daha fazla yapılandırma ve kurulum gerektirebilir.
Ava, performans ve eşzamanlılığa odaklanan bir JavaScript test çerçevesidir. Testleri aynı anda çalıştırmak için tasarlanmıştır, bu da daha hızlı test yürütme sürelerine olanak tanır. Ava ayrıca JavaScript uygulamalarını test etmek için bağımsız bir çözüm haline getiren yerleşik bir test çalıştırıcısı ve onay kitaplığı ile birlikte gelir.
Aşağıdaki komutu çalıştırarak Ava'yı kurabilirsiniz:
npm kurulum --save-dev ava
Aşağıda, iki sayının toplamını döndüren bir işlev için Ava ile yapılan testi gösteren bir örnek verilmiştir:
içe aktarmak Ölçek itibaren"ava";
Ölçek('addNumbers iki pozitif sayı ekler', t => {
sabit sonuç = sayı ekle(3, 5);
t.is (sonuç, 8);
});
Ölçek('addNumbers bir pozitif ve bir negatif sayı ekler', t => {
sabit sonuç = sayı ekle(3, -5);
t.is (sonuç, -2);
});
Bu testleri Ava kullanarak çalıştırdığınızda, Ava her testi yürütür ve sonuçları konsola bildirir. Tüm testler geçerse, Ava tüm testlerin geçtiğini bildirir. Herhangi bir test başarısız olursa, Ava hangi testlerin başarısız olduğunu bildirir ve beklenen ve gerçek çıktı değerleri hakkında bilgi sağlar.
Ava'nın artılarından bazıları, özellikle çok sayıda test içeren projelerde daha hızlı test yürütme sürelerine izin veren performans ve eş zamanlılığa odaklanmasıdır. Ancak Ava, modern JavaScript söz diziminde yeni olan geliştiriciler için daha zorlu bir öğrenme eğrisine sahip olabilir, çünkü ES modülleri ve diğer modern JavaScript özellikleri.
Jasmine, JavaScript uygulamaları için davranış odaklı bir geliştirme (BDD) test çerçevesidir. Doğal dile çok benzeyen testler yazmak için temiz ve anlamlı bir sözdizimi sağlayarak hem teknik hem de teknik olmayan kişiler için testlerin anlaşılmasını ve yazılmasını kolaylaştırır. Jasmine ayrıca, JavaScript uygulamalarını test etmek için kapsamlı bir çözüm haline getiren yerleşik bir test çalıştırıcısı ve onaylama kitaplığı ile birlikte gelir.
Bu komutu çalıştırarak Jasmine'i yükleyebilirsiniz:
npm install --save-dev yasemin
Ardından, aşağıdaki komutu çalıştırarak çalışma dizininizde Jasmine'i başlatmanız gerekir:
yasemin init
Yukarıdaki komut bir Destek klasöründeki spesifikasyon (Testler) klasörü. Bu klasör, yasemin.json Jasmine için yapılandırma ayarını içeren dosya.
Bir sayının çift olup olmadığını kontrol eden bir fonksiyon için Jasmine ile test etmeyi gösteren bir örnek:
betimlemek('Çift', işlev() {
BT('Çift bir sayı için true döndür', işlev() {
sabit sonuç = çifttir(4);
beklemek (sonuç).toBe(doğru);
});
BT('Tek bir sayı için false döndür', işlev() {
sabit sonuç = çifttir(5);
beklemek (sonuç).toBe(YANLIŞ);
});
});
Yukarıdaki testleri Jasmine kullanarak çalıştırdığınızda, Jasmine her testi yürütecek ve sonuçları konsola bildirecektir. Tüm testler geçerse, Jasmine tüm testlerin geçtiğini bildirecek. Herhangi bir test başarısız olursa, Jasmine hangi testlerin başarısız olduğunu bildirecek ve beklenen ve gerçek çıktı değerleri hakkında bilgi verecektir.
Jasmine'in artılarından bazıları, testleri insanlar tarafından daha okunabilir hale getiren ve teknik ve teknik olmayan ekip üyeleri arasındaki iletişimi geliştirmeye yardımcı olan BDD sözdizimini içerir. Ancak Jasmine, BDD konseptlerinde yeni olan geliştiriciler için daha zorlu bir öğrenme eğrisine sahip olabilir. Bununla birlikte, diğer test çerçeveleriyle karşılaştırıldığında, Jasmine'in kurulması için çok fazla yapılandırma gerektirdiğini belirtmekte fayda var.
Test Çerçevesi Seçme
Bir Node.js projesi için bir test çerçevesi seçmek, birkaç faktörün dikkatle değerlendirilmesini gerektirir, test yaklaşımı, kullanım kolaylığı, topluluk desteği, diğer araçlarla entegrasyon ve verim. Ancak nihai olarak, bazı paketler belirli projeler için diğerlerinden daha uygun olduğundan, seçim projenize bağlıdır.