Nasıl Test Edilir Siteleri ve Uygulamaları

Sep 10, 2025
Nasıl Yapılır
Test React
(Görüntü Kredi: Gelecek)

Nasıl test edileceğini bilmek istiyorsanız, doğru yerdesiniz. Kodunuzu gerçekten biliyor musunuz, ne yapması gerekiyor? Tarayıcıda test ettiniz mi? Ya ötesi değilseniz, yoksa her şeyi test edemezsiniz ve üretimde mi bozulur?

Bir test kütüphanesi, bir grup yardımcı program geliştiricileri, uygulama bileşenlerinde bireysel testler yazmak için kullanır. Bir testin prensip kısımlarından bazıları şunlardır:

  • Açıklama: Testin ne hakkında olduğunu açıklar
  • Kullanın / Kıyız: bileşeni test edilebileceği bir ortamda kullanır
  • Alaycı: varsayımlarınızı kontrol edebilirsiniz, böylece varsayımlarınızı kontrol edebilirsiniz.

Bu makalenin süresince, kod çıktısınızın sağlamlığını iyileştirmenin yanı sıra, kodunuzun atmamasının yanı sıra, bu değerli bir şekilde başlamanıza yardımcı olmak için reaksiyon test kitaplığından bazı örnekler keşfedeceğim. Üretime girdikten sonra kötü sürprizler kadar.

Daha faydalı kaynaklar ister misiniz? İşte en iyinin yıkığı Web Tasarım Araçları etrafında, daha akıllıca çalışmanıza yardımcı olacak. Ya da yeni bir makineye ihtiyacınız olursa, bu yuvarlamayı deneyin. Programlama için en iyi dizüstü bilgisayarlar . Ya da yeni bir site inşa ediyorsanız, harika bir ihtiyacınız olabilir Web Sitesi Oluşturucu .

01. Reaksiyon Test Kütüphanesi ile Başlayın

Bu demo için Create-React-App kullanacağım çünkü zaten test kütüphanesi ile önceden yapılandırılmış olarak geliyor. GATSBY veya özel bir kurulum kullanıyorsanız, test kitaplığını kullanmaya başlamadan önce çalışmanız gereken bazı yapılandırma olabilir.

Başlamak için yeni bir uygulama oluşturalım. Zaten bir NODE.JS'nin son sürümüne sahipseniz, küresel olarak başka bir şey kurmadan aşağıdaki komutu çalıştırabilirsiniz:

npx create-react-app netmag-javascript-testing

02. Ne test edeceğinize karar verin

Basit bir bileşene sahip olduğumuzu hayal edin, bazı durumlu bir düğme söyle. Böyle bir bileşende test edilmeyen şeyler nelerdir?

Bileşenin görünümü:

Bileşenimizi yazdıktan sonra beklenmedik bir şekilde değişmesini istemiyoruz. Bu yüzden nasıl yaptığını yakalamak için bir anlık görüntü testi yazacağız. Ardından, eğer bir şey değişirse, manuel veya görsel bir test olmadan hızlıca göreceğiz. Bu, birçok daha küçük bileşenden oluşan bileşenler için mükemmeldir: (ve nerede) görünüşünün etkilendiğini (ve nerede) hızlıca görebilirsiniz.

Şunları veren farklı dallar:

İki veya daha fazla farklı çıktı yapabileceğimiz için, hepsinden birinin değil, hepsini doğru hale getirdiğini test etmemiz gerekiyor. Bu nedenle, bir tıklama olayını simüle etmemiz ve bu kod dalı çalıştırıldıktan sonra telafi etme şekli için başka bir anlık görüntü testi yapmamız gerekiyor.

Bu fonksiyonlar beklendiği gibi denir:

Bunun istediğimiz gibi başka bir işlevi çağırmak için yazdığımız kodun yapacağını sağlamak istiyoruz. Ancak bu işlev dış bağımlılık olduğundan, bunu burada test etmek istemiyoruz. Testlerimiz sadece istediğimiz işlevselliği kapsar.

03. İlk testinizi yazın

Test React

(Görüntü: © ben okuma)

İlk testimizi yazalım. Denilen yeni bir dosya oluştur Mycomponent.unit.test.js Bileşenle aynı klasörde. Sonunda test.js ekleyerek, test kütüphanesi tarafından otomatik olarak seçilecektir. Bu dosyanın içeriği aşağıdadır:

 İthalat 'tepki' dan tepki
'@ Test-Library / React' dan ithalat {render}
'./mycomponent' dan mycomponent ithalatı
tanımlayın ('MyComponent / & Gt;', () = & gt; {
    // testler buraya gidin
}) 

Dikkatinizi çekmek istediğim ilk şey tanımlamak() İki argüman alan işlevi: Birincisi, bir metin dizisi olarak, testinizin ne yapacağını daha iyi tanımlamak için kullanabileceğiniz bir dizedir. Bizim durumumuzda sadece bunu yapması gerektiğini söyledik. Bu, başka biri kodunuza bakarken ya da daha sonraki bir aşamada ne yaptığınızı hatırlamanız gerektiğinde çok faydalıdır. İyi tanımlama ifadeleri yazma, bir kod belgelerinin bir şeklidir ve test yazmak için bir başka iyi nedendir.

İkinci argüman testlerinizdir. tanımlamak() İşlev, tüm bu testleri diğerinden sonra çalıştıracaktır.

04. Temizleme işlevini kullanın

Aranan bir yardımcı işlevi tanıtalım daha önce () . Bunu kullanmamız gerekiyor, çünkü her seferinde bir şey yaptığımızda, daha önce bileşende var olduğumuzdan geçtiğimiz sahne olmadan taze bir kopya istiyoruz. Veya bileşeni yeniden oluşturmamız gerekebilir: daha önce () Bunu bizim için mi, temizleme işlevini geçebiliriz.

 '@ Testing-Library / React' dan ithalat {render, cleanup}
...
tanımlayın ('Bileşen oluşturmalı', () = & gt; {
  daha önce (temizleme)
} 

05. Bir anlık görüntü testi yazın

Test React

(Görüntü: © ben okuma)

Bu adımda, Bileşenimizi 'Dağı' (ya da render) gidiyoruz.

 tanımlayın ('Bileşen oluşturmalı', () = & gt; {
  daha önce (temizleme)
  BT ('Temel Sahne ile Renders', () = & gt; {
    render (& lt; mycomponent / & gt;)
  })
} 

Bu, bize derlenen bileşenin işlenen tüm özelliklerine erişim sağlar. Bunu bir bırakmak iyi olabilir. console.log () Böylece ne yaptığını daha net görebilirsiniz.
Yaparsanız, buradan yararlanabileceğimiz birkaç faydalı özellik olduğunu göreceksiniz. Bir iddia yapacağım (test edilebilir bir bildirimde bulunuyorum) ve kabı çıkararak test edeceğim. Konteyner ', bileşenle ilişkili olan DOM düğümlerini (HTML'nin tümü) içerir.

 BT ('Temel Sahne ile Renders', () = & gt; {
    const {konteyner} = render (& lt; mycomponent / & gt;)
}) 

Şimdi konteynere erişimimiz var, bunun iddiama göre nasıl işlendiğini nasıl söyleyebilirim? Bir anlık görüntü testi ekleyerek.

Bir fotoğraf gibi bir anlık görüntü düşünün. Bileşenimizin bir anlık görüntüsünü zaman içinde belirli bir noktada alır. Ardından, koda değişiklik yaptığımızda, hala orijinal anlık görüntüyle eşleşip eşleşmeyeceğini görebiliriz. Eğer yaparsa, hiçbir şeyin bileşende değişmediğinden emin olabiliriz. Bununla birlikte, eğer değilse, başka bir bileşenden kaynaklanan bir sorunu ortaya çıkarmış olabiliriz, bir daha önce göremeyeceğimiz bir kişi:

06. Test Özellikleri

Bir bileşenin propları veya özellikleri de anlık görüntülerle test edilebilir. Bileşeninize verdiğiniz farklı sahneleri test etmek size daha fazla kapsama ve güven verecektir. Bir gereksinimin ne zaman yapılacağını asla bilemezsiniz, bileşenin sahne cihazınızın reddedildiği ve son çıktı değişecektir.

Aşağıdaki nesneyi dosyanızın üstüne ekleyin:

 const lightproperties = {
    BackgroundColour: 'beyaz',
    TextColour: 'DarkBlue'
} 

Bir nesnedeki özellikleri tanımlar ve daha sonra yayılan operatörü kullanın (üç nokta, ardından nesne adı: ... LightProperties) Çünkü bu şekilde bu şekilde bir argümanı geçebiliriz. Aynı zamanda izolasyonda hangi özellikleri geçtiğinizi görmek faydalıdır:

 BT ('Temel Sahne ile Renders', () = & gt; {
        const {konteyner} = render (& lt; mycomponent / & gt;
      )
     bekle (konteyner) .TomatchSnapshot ()
    })
    BT ('Işık Sürümü Props' ile Renders ', () = & gt; {
        const {konteyner} = render (
            & lt; mycomponent {... LightProperties} / & gt;
        )
        bekle (konteyner) .TomatchSnapshot ()
    })

07. UI'deki test değişiklikleri

Bileşenimizi bir düğme olduğunu hayal edin ve düğme tıkladığında bir şeyin olduğundan emin olmak istiyorsunuz. Uygulamanın durumunu test etmek istediğinizi düşünebilirsiniz; Örneğin, devletin güncellendiğini test etmek için cazip olabilirsiniz. Ancak, bu testlerin nesnesi değil.

Bu, bizi bir test kütüphanesi kullanmak için önemli bir konsepte tanıtır: Devleti veya bileşen çalışmalarımızın yolunu test etmek için burada değiliz. İnsanların bileşeni nasıl kullanacağını ve beklentilerini karşılayacağını test etmek için buradayız.

Öyleyse, devletin güncellenip güncellenmediği önemsizdir; Test etmek istediğimiz şey, o düğme baskının sonucunun ne olduğunu.

UI'yi karanlık moddan ışık moduna değiştiren bir fonksiyonun sonucunu test ettiğimizi hayal edelim. İşte bileşen:

 Const Modetoggle = () = & gt; {
    Const [MODE, SETMODE] = USESTATE ['Işık']
   const toggletheme = () = & gt; {
     eğer (tema === 'light') {
       SETTHEME ('karanlık')
     } Başka {
       SETTHEME ('Işık')
     }
   }
    dönüş (
        & lt; togglebutton data-testid = "MODE-TOGGGLE" LightMode = {MODE} ONCLICK = {TOGGGLEMODE} & gt;
          Geçiş modu
        & lt; / togglebutton & gt;
    )
}

İlk olarak, butonun üzerine bir test kimliği eklemeliyiz, böylece bunu render aşamasında bulabiliriz:

 dönüş (
    & lt; togglebutton
      DATA-TESTID = "MODE-TOGGLE"
      lightmode = {MODE}
      onclick = {toggglemode}
     & gt;
      Geçiş modu
    & lt; / togglebutton & gt;

Yeni özniteliği eklediğimizi fark ettiniz mi? Veri tanıklığı Düğmeye mi? İşte bunu nasıl test edebilirsin. İlk önce, test kitaplığından itibaren yeni bir işlevi, ithalat yapın:

 İthalat {temizleme,
          itfaiyeci,
          kılmak
} '@ Testing-Library / React' 'dan

UI'de değişiklikler olduğunu ve bu değişikliklerin tutarlı olduğunu test etmek için bu işlevi kullanabiliriz.

 BT ('Temel Sahne ile Renders', () = & gt; {
    const {konteyner} = render (& lt; togglebutton / & gt;
  )
 bekle (konteyner) .TomatchSnapshot ()
})
BT ('Light UI'yi tıklayın', () = & gt; {
    const {konteyner, getbytestid} = render (

Bu harika: Siteye manuel olarak gitmek zorunda değiliz ve etrafa bakmalıyız, ardından düğmeyi tıklatın ve bir ikinci kez bakın - bu da itiraf edersiniz, muhtemelen bir şeyi unutabilir veya kaçırırsınız! Şimdi, aynı girişe verilen, bileşenimizdeki aynı çıktıyı bekleyebileceğimiz konusunda güvenebiliriz.

Kimlikleri test söz konusu olduğunda, kişisel olarak kullanmayı sevmiyorum Veri tanıklığı Dom'da bir şey bulmak için. Sonuçta, testlerin amacı, kullanıcının ne yaptığını ve yaptıklarında olanları test etmektir. Veri tanıklığı Bir hile gibi hissediyor - Veri-TestID'ler muhtemelen QA mühendisiniz için kullanışlı olmasına rağmen (kalite güvence mühendislerinin rolünü bkz.).

Bunun yerine kullanabilirdik getByText () ve butonumuzun metninde geç. Bu yöntem çok daha fazla davranış olabilir.

08. Fonksiyonu alay ve casusluk

Bazen bir aramayı bir işlevi test etmemiz gerekebilir, ancak bu işlev testin kapsamı dışındadır. Örneğin, PI değerini belirli sayıda ondalık olarak hesaplayan bir işlev içeren ayrı bir modülüm var.

Bu modülün sonucunun ne olduğunu test etmem gerekmiyor. İşlevimin beklendiği gibi yaptığını test etmem gerekiyor. Bunun neden olduğu hakkında daha fazla bilgi için, lütfen kutu ünitesine ve entegrasyon testlerine bakın. Bu durumda, bu işlevi 'alay edebiliriz':

 const getpivalue = jest.fn ()
BT ('Fonksiyonu tıkla', () = & gt; {
    const {konteyner, getbytestid} = render (

İşlev tohavebeencalledtimes () Bizi etkinleştiren test kütüphanesindeki birçok yardımcı fonksiyondan biridir.

İşlevlerin çıktısını test etmek için. Bu, testlerimizi yalnızca test etmek istediğimiz modüle sadece kapsamamamıza izin vermemize izin verir, ancak aynı zamanda bu işlevi çağırdığında işlevimizin ne yaptığını veya görebileceğimiz anlamına gelir.

09. Test Test Etme Uygulamalarını Başlat

Test React

(Görüntü: © Test Kütüphanesi Reaksiyonu)

Yazma testleri başlamak için biraz göz korkutucu görünebilir. Umarım bu eğitim size denemek için biraz daha güven vermiştir. Uygulamalarım için testler yazmaya başladığımdan beri, gerçekten geri dönmem: Daha kolay dinlenebilirim, gelecekteki çalışmalarımı kullanacak olanlar için daha iyi bir mirasın geride kaldığımı bilerek.

Bileşenlerinizi nasıl test edeceğiniz hakkında daha fazla fikir için, ziyaret edin Test kütüphanesini reaksiyona girin veya Test örneklerini reaksiyona girin . Başlamanıza yardımcı olacak bazı kurslar arıyorsanız, Kent C Dodds tarafından (REACT Test Kütüphanesi'nin yazdığı ve koruduğu) popülerdir. Ben de zevk aldım Bu seviyede öğreticilerde Beni kodlarım için testler yazmaya başlayan bu.

Unutmayın, karmaşık bir site inşa ediyorsanız, elde etmek istersiniz. ağ sağlayıcısı Servis spotu. Ve eğer bu sitenin çok fazla varlık içermesi muhtemel ise, onları güvenilir olarak saklamak Bulut depolama çok önemlidir.

Bu içerik başlangıçta ortaya çıktı net dergisi . Daha fazla bilgi edinin Web Tasarım Makaleleri Burada .

Daha fazla oku:

  • HTML6: Nedir ve ne zaman geliyor?
  • HTML kodunu daha hızlı yaz
  • Mobil Uygulama Tasarımı: Bir Başlangıç ​​Kılavuzu

Nasıl Yapılır - En Popüler Makaleler

Bir boyun ve omuzlar nasıl çizilir

Nasıl Yapılır Sep 10, 2025

Bir boyun ve omuzların nasıl çizileceğini öğrenirken, insanları önden açıkça görmeye alıştığımız için, işimizdeki hacimleri göstermek zor olabilir. Ancak anatomik olarak ..


Alev ressamı ile başlayın

Nasıl Yapılır Sep 10, 2025

Alev boyacı, orijinal resimler, ışık efektleri, geleneksel olmayan tasarımlar veya fantastik arka planlar hızlı ve kolay bir şekilde yaratmanızı sağlayan bağımsız bir boya ve pa..


Bir kişiyi nasıl çizilir

Nasıl Yapılır Sep 10, 2025

Hangi tür sanatçı olursa, bir kişinin nasıl çizileceğini anlamak temel bir beceridir. İnsan formuna ustalaşın ve kendi karakter tasarımlarınız..


Artrage 5 ile Etkileyici Portre Sanatı Boya

Nasıl Yapılır Sep 10, 2025

Artrage popüler bir dijital sanat aracıdır (daha fazlası için, Attrage GİRİŞ) Bu eğitimde, Artrage 5'te b..


Kötü bir eşek GEISHA çizin

Nasıl Yapılır Sep 10, 2025

Bu Geisha illüstrasyonunda, zarif geleneksel Japon elemanları ile bağlanmış aşınmış, karanlık, kentsel bir vibe yakalam..


Pixijs ile dalgalanma etkileri oluşturun

Nasıl Yapılır Sep 10, 2025

Bir sayfaya katılmak için bir sayfaya eklenebilecek birçok ilginç etki var, ancak bir sitenin genel estetiğiyle iyi birleşe..


Fotogerçekçi bir gökyüzü nasıl oluşturulur

Nasıl Yapılır Sep 10, 2025

Bu eğitim için, kullanıyoruz Vue xstream Bulutlarla dolu bir gökyüzü oluşturmak için. Smoke Sims, örneği..


3D Saç ve Kürk Nasıl Oluşturulur

Nasıl Yapılır Sep 10, 2025

Herhangi bir kürkle ilk kez çalıştığınızda kolayca boğulabilirsiniz. 3d sanat yazılım. Bu eğitimde, mo..


Kategoriler