Herkes test yazabilmenin avantajlarından bahsediyor ve ben testleri nasıl okuyacağımı öğrenmiş olsam da, hiçbir projem için test yazmaya hiç zaman ayırmadım. Testler çok sayıda nedenden ötürü önemlidir: Kodumuzdaki sorunları hızlı bir şekilde tanımlamamıza izin verirler, ayrıca işlevlerimizi yalnızca tek bir işi gerçekleştirmek için doğru şekilde ayırmamızı sağlarlar ve kodun ne yapması gerektiğine dair net bir anlayış sağlamaya yardımcı olurlar, Diğer şeylerin yanı sıra. Bu yüzden bugün, projelerime birim testleri ekleyebilmek için Jest'i kullanmanın tüm ayrıntılarını öğrenerek ve test senaryoları oluşturmaya karar verdim.
Bununla birlikte, bugün sizi ünite testine başlamak için küçük bir gezintiye çıkaracağım ve umarım bunun sonunda projelerinizden bazılarına geri dönebilir ve kendi testlerinizi ekleyebileceksiniz.
Öncelikle ilk olarak, Jest'in belgelerine bir göz atmanızı şiddetle tavsiye ederim . Oldukça yeni başlayanlar için dost canlısı ve yalındırlar. Daha sonra, aşağıdakilerden birini çalıştırarak Jest'i kurabilirsiniz: iplik ekle - dev jest VEYA npm i - kaydet-dev jest (lütfen unutmayın, * kısa çizgi * dev / * kısa çizgi * kaydetme olmalıdır). Jest'i kullanabilmek için bir package.json dosyanızın olması gerekir. Eğer bir tane yoksa npm init çalıştırabilirsiniz.
Ortamınız Jest ile kurulduktan sonra, yazmak istediğiniz işlevler için bazı testler yazarak başlayabilir veya mevcut bir projeye testler ekliyorsanız, test etmek istediğiniz işlevler için testler yazabilirsiniz. Bu da beni “neyi test etmeliyim?” Sorusuna götürüyor. Testlerin ne için yazılacağını anlamak için bazı genel kurallar şunlardır: (1) testiniz yalnızca bir şeyi test etmelidir, (2) kodunuzun belirli bir sonuç gerektiren kısımlarını arayın, (3) herhangi bir test için test senaryoları yazın. karşılaşabileceğiniz hatalar. Bunlar sizi düşünmeye sevk edecek birkaç nokta.
Bazı genel adlandırma kurallarının üzerinden geçelim. Kodunuzdaki her dosya için bir test dosyası istiyorsunuz. Aşağıdaki fotoğrafta görebileceğiniz gibi, test dosyası adı, kod dosyası adıyla eşleşmeli ve ".test.js" ile bitmelidir. İşlevlerin dosyalar arasında ayrılmasını istediğiniz gibi, testleriniz de aynı kuralı izlemelidir.
Fonksiyonunuzu bir kez yazdıktan sonra, bu sadece bir fonksiyonu başlatmak veya tüm fonksiyonu yazmak olabilir, fonksiyonu dışa aktardığınızdan emin olmak istersiniz, böylece daha sonra kullanım için test dosyasına aktarılabilir.
Aklınızda test etmeniz gereken bir işlev olduğunda, test dosyanıza gidip test ettiğiniz dosyayı içe aktaracaksınız. Bir test oluşturmak için test () adında bir Jest işlevi kullanacaksınız. Bu fonksiyon 2 argüman alır, ilki test edileni belirten bir dizedir, bu testlerinizi çalıştırdığınızda terminalde gösterilir, ikincisi kodunuzu test edecek eşleştiricileri içeren bir ok fonksiyonudur. Bir eşleştirici, işlevlerinizi belirtilen değerler için test eden Jest kodudur. Sağlanan eşleştiricilerin tam listesini Jest belgelerinde bulabilirsiniz; bugün birkaçının üzerinden geçeceğiz. Yukarıdaki örneğimiz için, 1 ve 2 değerlerini toplam işlevine aktarırsak, 3 olmasını bekleriz. Bu test kodunda neye benziyor?
Artık ilk test kodunuzu yazdığınıza göre, onu nasıl çalıştıracaksınız? Terminalinizde npm testi çalıştırabilirsiniz ve test senaryosu çalışacaktır. Çalıştırdıktan sonra, testinize aktardığınız dize bağımsız değişkeni ve işlevi çalıştırmak için geçen süre ile birlikte kırmızı renkte "başarısız" veya yeşil "geçildi" ifadesini göreceksiniz.
Ve bu kadar basit! En zor kısım muhtemelen neyi test edeceğini bilmektir, ancak hayattaki her şey gibi, pratik yapmak da mükemmelleştirir. Testleri ne kadar çok kodlar ve yazarsanız, neyi test edeceğinizi o kadar iyi anlarsınız. Ve tüm uç durumları yakalayamasanız bile, daha sonra hatalarla karşılaştığınızda her zaman daha fazla test ekleyebilirsiniz.
Dolayısıyla, yukarıda "toBe" eşleştiricisini kullandık, bu en iyi şekilde tam eşitliğe sahip işlevler için kullanılır. Bu aynı zamanda uzayda nerede bulunduğunu da hesaba katar, bu nedenle bir nesnenin değerini kontrol etmeniz gerekirse bu işe yaramayacaktır. Bu noktada, "toEqual" eşleştiriciyi kullanmanız gerekecektir.
Bu yinelenen işlev, bir anlamda, bir argüman olarak aktarılan aynı değeri döndürecektir, ancak döndürülen aslında bellekte farklı bir yer kaplar. Bu nedenle, "toBe" kullansaydık, test başarısız olurdu, bu nedenle neden aşağıdaki "toEqual" kullanırız.
Sık kullanılan başka bir eşleştirici, bir şeyin belirli bir değere eşit olmadığından emin olmak istediğimiz zamandır. Bunu yapmak için, aşağıda gösterildiği gibi "toBe" eşleştiricimize "değil" ekleyebiliriz.
Bugün sadece Jest ile Javascript'te test etmeye küçük bir giriş yapmak istedim. Jest ile kullanılabilecek birçok yararlı eşleştirici var ve bunlara bakmanızı ve bunları projelerinizde nasıl kullanabileceğinizi öğrenmenizi şiddetle tavsiye ederim. Önümüzdeki hafta Jest'i React ile kullanmaya devam edeceğiz. Projeler daha karmaşık hale geldikçe, kod tabanınızı test etmek için sahte işlevler oluşturmanız gerekebilir. Buna alışmak biraz zaman alır, ancak uzun vadede karşılığını alır ve hata ayıklama sırasında size zaman kazandırır.
Teknoloji dünyasında, işletmeler sürekli olarak siber suçluların şeytani faaliyetlerinin tuzağına düşme riski altındadır. Endişe verici derecede sık hale gelen böyle bir taktik, kimlik bilgilerini doldurmaktır.
Test güdümlü geliştirme (TDD), asıl kod yazılmadan önce testlerin yazıldığı bir yazılım geliştirme metodolojisidir. Bu yaklaşım, kodun işlevsel olduğundan ve üretime dağıtılmadan önce gereksinimleri karşıladığından emin olmak için kullanılır.
Gündem: Giriş: TL; Ama okuyabilirim: A / B testi, CloudFront ve Lamba @ edge hakkında zaten bilginiz varsa, AWS Lambda @ edge ile doğrudan A / B testine gidin. A / B testi nedir? A / B testi, kullanıcıların bir web sitesinin iki farklı versiyonunun katılımını karşılaştırmaya odaklanan bir UX araştırma metodolojisidir.
Bugün AppStore'daki birçok uygulama, tablo görünümünü kaydırırken içeriği tablo görünümü başlığındaki ölçekleme gibi davranışlara sahiptir. Bu tür davranışlara nasıl ulaşabileceğimizin en basit yaklaşımını size göstereceğim.
İlk blogumda söz verdiğim gibi 'DOM Nedir?' burada 'DOM işleme' üzerine bir blog var. Bu blogda DOM'a daha fazla dalacağız ve DOM işlemenin ne olduğunu ve nasıl yapıldığını öğreneceğiz.
Node.js'de akışların nasıl çalıştığını hiç merak ettiniz mi? Sahiptim.