jasmine framework tutorial including jasmine jquery with examples
Bu Makale Jasmine Test Çerçevesi ve Yapılarını Kapsamaktadır. Ayrıca, Jasmine'i Jquery Uygulamalarını Test Etmek Üzere Genişleten Jasmine-Jquery Paketi Hakkında Bilgi Edinin:
Hakkında her şeyi öğrendik Karma bu serideki önceki eğitimimizde.
Bu eğiticide, Jasmine'i bir JavaScript web uygulaması için testler yazmak için nasıl kullanacağımızı ve ayrıca Jquery web uygulamasını test etmek için düğüm tabanlı Jasmine-Jquery paketini nasıl kullanacağımızı öğreneceğiz.
Burada esas olarak test yazmak için temel Jasmine yapılarına odaklanacağız.
birleştirme sıralaması sözde kodu c ++
Hadi başlayalım!!
Ne öğreneceksin:
Test Çerçeveleri Nelerdir?
Test Çerçeveleri, kalitesinden emin olmak için başka bir programı test etmeyi kolaylaştıran program veya paket paketleridir. Önceki eğitimimizden öğrenmiş olmanız gereken her programlama platformunun kendi test çerçevesi vardır.
Herhangi bir yazılım sisteminde gerçekleştirilebilecek farklı testler vardır. Örnekler Bu tür testler arasında birim testi, uçtan uca (e2e) testi vb. yer alır. İşte daha fazla ayrıntı için.
Örnekler JavaScript uygulamaları için test çerçeveleri arasında Mocha, Jasmine, intern, jest, Qunit vb.
Jasmine Çerçevesine Giriş
Günümüz senaryosunda farklı geliştirme yaklaşımları mevcuttur. Bunlardan en popüler iki geliştirme yaklaşımı arasında Test Odaklı Geliştirme (TDD) ve Davranış Odaklı Geliştirme (BDD) bulunur.
Test Odaklı Geliştirme, önce testleri yazdığımız ve ardından çalıştırdığımız bir geliştirme yaklaşımıdır. Her test, kullandığı işlevler henüz yazılmadığı için ilk çalıştırmada başarısız olur.
Daha sonra fonksiyonları yazıp testleri yeniden çalıştırıyoruz. Burada bazı testler başarısız, diğerleri başarılı. Tüm testlerin başarılı olması için kodu yeniden düzenlemeye devam ediyoruz.
Davranış Odaklı Geliştirme de aynı yaklaşımı izler. Tek fark, BDD'nin yazılım sahiplerini tatmin etmek için (müşteri / iş odaklı), yani yazılım özelliklerini iş gereksinimleri veya beklenen davranışla karşılamak için yazılmış olmasıdır.
TDD, yazılım geliştiricilerini memnun etmek için yazılırken, özelliklerin oluşturulmasında kullanılan yazılım fonksiyonlarının doğru, istikrarlı ve güvenilir sonuçlar ürettiğinden emin olunabilir.
Görmek İşte TDD ve BDD hakkında daha fazla bilgi edinin.
Jasmine, davranışa dayalı, test yazmayı kolaylaştıran ve başka herhangi bir çerçeveye bağlı olmayan bir JavaScript test çerçevesidir.
Jasmine'i testlerinizi yazmak için kullanmanın iki yolu vardır. Bunun bir yolu, specRunner.html ile birlikte gelen (test sonuçlarını bir tarayıcıda görüntüleyen) bağımsız sürümü kullanmaktır. Diğer yol ise Jasmine'i kurmak, testlerinizi yazmak ve konsol penceresinde görüntülenen sonuçları almak için Karma gibi bir test çalıştırıcısı ile çalıştırmaktır.
Bir sonraki eğitimimizde Jasmine'i kullanmanın her iki yolunu da inceleyeceğiz.
Temel Yasemin Yazma Testleri İçin İnşa Ediyor
Aşağıda, Yasemin'in yazma testleri için çeşitli yapıları listelenmiştir.
Görelim!!
# 1) şunları tanımlar: Bu yapı, bir test paketi yazmak için kullanılır. Bir test paketi, birden çok testin bir koleksiyonudur. 'Açıklama', kendi başına iki parametre alan bir işlevdir: Paketin adı ve bir işlev .
en iyi mp3 müzik indirici uygulaması
İşlev parametresi, test paketi altında gruplanmış testlerin bir koleksiyonunu içerir.
# 2) o: Bu yapı, bir test özelliği yazmak için kullanılır. Bir test spesifikasyonu, bir sistem için belirli veya en küçük beklentiyi test eden bir yapı kümesidir.
Tanımlama yapısında olduğu gibi, iki parametre de alır: Testin adı ve beklentinin karşılanıp karşılanmadığını değerlendiren iddiaları içeren işlev.
# 3) beklemek : Bu yapı, yazılım sisteminden beklentilerin karşılanıp karşılanmadığının test edilmesine yardımcı olur.
Gerçek olarak adlandırılan bir parametreyi alır (bu, yazılım sisteminin geri döndüğü sonuçtur) ve daha sonra eşleştirici (beklenen sonuç) adı verilen başka bir yapı ile zincirlenir.
# 4) Maçlar : Bu, beklenen yapının zincirlendiği yapıların bir koleksiyonudur. Beklentinin karşılanıp karşılanmadığını belirler.
Bu yapılar, yürütülen en yakın testin beklenen değerini alır ve bunu, testin yürütülmesi sırasında elde edilen gerçek değerle eşleştirir. Tıklayın İşte Jasmine eşleştirici yapılarının tam listesi için
# 5) Her Birinden Önce : Bu, Jasmine tarafından testlerinizi KURU tutmanıza yardımcı olmak için sağlanan küresel bir yapıdır (kendinizi tekrar etmeyin). Bu yapı, normal olarak, anlatılan yapının işlev parametresinde kullanılır.
Paketlerin altındaki özellikler çalıştırılmadan önce içindeki herhangi bir kod bir kez çalışır. Bu nedenle, paketteki tüm özelliklerden önce çalıştırılmasını istediğiniz herhangi bir kod buraya yerleştirilmelidir.
# 6) Her Birinden Sonra: Bu yapı, beforeEach ile aynıdır ve aradaki fark, içerdiği kodun, açıklanan yapı çalıştırıldıktan sonra her koddan sonra çalıştırılmasıdır.
# 7) bu : Bu yapı, herhangi bir test paketindeki 'beforeEach', 'afterEach' ve 'it' yapıları arasında değerleri paylaşmak için kullanılabilen boş bir nesnedir. Her test paketinin kendi nesnesi vardır ve test takımları yürütülmeden önce nesne boş olarak sıfırlanır.
# 8) xdescribe : Bu yapı, yazılım paketlerini devre dışı bırakmak için kullanılır. Sadece test koşucusuna test paketini atlamasını söyler ve bu nedenle sonucu gösterilmez ve dikkate alınmaz.
# 9) isabet : Bu yapı, bir paketteki bir özelliği bekleyen bir özellik olarak belirtmek için kullanılır. Bekleyen bir spesifikasyon, çalışmayacak, ancak adları beklemede olarak test sonucunda gösterilen bir spesifikasyondur.
Ayrıca, herhangi bir spesifikasyonda bekleyen fonksiyon çağrılırsa, spesifikasyon bekleyen spesifikasyon olarak işaretlenir. İşlev gövdesi olmadan bildirilen herhangi bir özellik de beklemede olarak etiketlenir.
# 10) spyOn : Bu yapı bir Jasmine casusu oluşturmak için kullanılır. Casuslar alaydır. Taklitler, gerçek nesneyi temsil etmek veya taklit etmek için oluşturulmuş sahte nesnelerdir. Temsil ettikleri gerçek nesneyi oluşturmanın genel maliyetini önlemek için taklitler gereklidir.
Bir kodu test etmenin özü, bir fonksiyonun, bağlı olan veya bağlanacak diğer birimlerden bağımsız olarak çeşitli koşullar altında nasıl davrandığını görmektir.
Bu nedenle, yazılım ürünümüzün ön uç biriminin, ona bağlanacak veya bağlanacak diğer ön uç birimlerden bağımsız olarak nasıl davranacağını görmek için ön uç birim testi gerçekleştiriyoruz.
Bu test sırasında, ağ bağlantıları, veri kaynakları ve dosyalar gibi diğer işlevlere ve nesnelere bağlı olabilecek çeşitli argümanlara ve işlevlere çağrılar yaparız.
Bu bağımlılıkları karşılamak için (böylece ön uç birim testi yapabiliriz), gerekli kaynakların kullanılabilir hale getirilmesine ihtiyaç vardır. Bu nedenle, gerçek dünya nesnelerini taklit etmek ve onları gerçekten yaratmanın genel maliyetinden kaçınmak için alayları benimseriz.
Basit bir düzeyde spyOn'un bağımlı bir işlevin gerçekten çağrılıp çağrılmadığını test etmek için kullanıldığını ve bu bağımlı işlevin sadece casusluk yaptığımız nesne üzerinde tanımlanan basit bir işlev olabileceğini unutmayın.
SpyOn işlevi iki parametre alır: casusluk yapılan nesne ve işlevimizin çağırdığından emin olmak için kontrol edilen içerdiği bağımlılık işlevi.
Casuslar, tanımlandıkları pakette veya spesifikasyonda bulunur. Paket veya teknik özellik yürütüldükten sonra casus var olmak için durur.
# 11) createSpy: Bu yapı, spyOn ile aynı amaca hizmet eder, ancak fark, bu işlevin bağımlı işlevi test için sahte bir işlevle değiştirmeyi mümkün kılmasıdır.
Bunu neden yapmak zorundayım? Bu, orijinal bağımlılık test bağlamında bulunmayan diğer kaynaklara da bağlı olduğunda yararlıdır.
Bu işleve, noktalı Jasmine nesnesi, yani Jasmine.createSpy (parametreler) kullanılarak erişilir. Sahte oluşturduğumuz bağımlılığın adını temsil eden bir dize olan yalnızca bir parametre alır.
Bir casus oluşturduktan sonra, ilk aramanın eğitimi olduğu varsayıldığından, ilk aramadaki casus tanımsız olarak geri döner. Ardından, sonraki çağrılardan sonra işlev gerçek değeri döndürür. Aşağıda keşfederken daha fazla ayrıntı görün.
Yasemin Testi Çift Fonksiyon Özelliği
SpyOn ve createSpy yapıları, taklitlerin (bağımlılık için) oluşturulmasını mümkün kılar. Bu, tek bir testte iki işlevi test etmekten başka bir şey değildir, dolayısıyla 'çift işlevi test et' ifadesi.
Taklitlere atıfta bulunmak için kullanılabilecek diğer kelime 'taslak' tır.
Casus Eşleştiriciler: Casuslarla etkileşim ihtiyacını karşılayan birkaç eşleştirici var. Onlar içerir: 'ToHaveBeenCalled' ve 'toHaveBeenCalledWith' .
-
- toHaveBeenCalled : Bu, casusluk yapılan bağımlılığın çağrıldığını belirlemek için bir spesifikasyonda kullanılır.
- toHaveBeenCalledWith : Bu, casusluk yapılan bağımlılığın belirli bir parametre setiyle çağrıldığını belirlemek için bir spesifikasyonda kullanılır.
Ziyaret etmek İşte Tüm Jasmine yapılarının ayrıntılı bir taslağı için.
"varsayılan ağ geçidi mevcut değil"
Yasemin Kullanmanın İki Yolu
Jasmine testleri yazmanın iki yolu vardır. Birincisi Jasmine'i specRunner aracılığıyla bağımsız bir dağıtım olarak kullanmak, diğeri ise Jasmine'i test çalıştırıcısı ile kullanmak.
İlk olarak Jasmine testlerini specRunner aracılığıyla çalıştırmaya bakalım.
Jasmine Bağımsız Dağıtım Nasıl Kullanılır?
Tıklayın İşte ve ardından bağımsız dağıtımı indirmek için Yasemin bağımsız .
Dosyayı proje klasörüne çıkartın. Bu dizinleri proje dizinine eklediğini keşfedeceksiniz: lib, src ve spec; ve şu dosyaları da ekler: specRunner.html ve MIT.LICENSE.
Lib dizini, specRunner.html dosyasına eklenen test dosyalarında bulunan testleri yürüten Jasmine kitaplığını içerir. SpecRunner.html dosyası testi çalıştırmanıza ve sonucu konsol penceresi yerine bir web sayfası biçiminde tarayıcıda görüntülemenize olanak sağlar.
Src dizini, ön uç kaynak kodlarını içerir ve spec dizini, Jasmine test paketleri kullanılarak yazılan test dosyalarını içerir. Varsayılan olarak, dizinlerin içinde bazı test paketleri ve dosyaları görebilirsiniz, ancak bunları kullanmayacağız, sonraki derslerimizde kendi testlerimizi yazacağız.
Jasmine'i Test Çalıştırıcısı ile Kullanma
Bu, Jasmine'i kullanmanın ikinci yoludur; burada Karma gibi bir test çalıştırıcısı yapılandırırsınız ve testleri çalıştırmak için kaynak dosyanız ve test özellik dosyasıyla beslersiniz.
Ardından İstanbul'u kullanarak sonuçları görüntüleyip raporlar oluşturabilir veya test sonuçlarını tulumlarda yayınlayabilirsiniz.
Jasmine-Jquery'ye Giriş
Jasmine-Jquery, jquery ile oluşturulmuş ön uç kodlarının test edilmesine yardımcı olan bir düğüm paketidir. Bir bakıma Jasmine çerçevesini, Jquery’nin ön uç testleri için çok uygun olacak şekilde genişletir.
Jasmine çerçevesine eklediği uzantılar şunları içerir:
- Jquery çerçevesi için toBeChecked, toBeDisabled, toBeEmpty, vb. Gibi bir dizi özel eşleştirici.
- Spesifikasyonlarımızda HTML, CSS ve JSON fikstürlerini işlemek için bir API.
Şimdi soru 'API nedir?' Bir API (uygulama programlama arabirimi), sıfırdan oluşturmanız için zaman ve kaynaklar alabilecek belirli işlevlere erişmenizi sağlayan bir arabirimdir.
Başka bir soru da fikstür nedir? Fikstürler, sonuçları tekrarlanabilir hale getirmek için testlerin çalıştırıldığı bir temel (iyi bilinen ve sabit bir ortam) oluşturmak için genellikle testleri yazarken oluşturduğumuz bir nesnenin önceden tanımlanmış halleridir.
Görmek İşte özel eşleştiriciler ve API (ler) hakkında daha fazla ayrıntı için.
Sonuç
Bu eğiticide, bir test çerçevesinin ne olduğunu anlamaya çalıştık ve Jasmine'i bir JavaScript test çerçevesi olarak tanıttık. Test özelliklerini yazmak için kullanılabilecek farklı Jasmine yapılarına baktık ve sonunda Jasmine'i Jquery uygulamalarını test edebilecek şekilde genişleten düğüm tabanlı bir paket olan Jasmine-Jquery'yi tanıttık.
Çıkarımlar
- Test çerçevesi, geliştirilen yazılımın kalitesini sağlamak için yazılımın test edilmesini kolaylaştıran bir programlar veya paketler paketidir.
- Jasmine, JavaScript uygulamaları için test özelliklerinin yazılmasını kolaylaştıran yapılar sağlayan davranış odaklı bir geliştirme aracıdır.
- Test Odaklı Geliştirme, önce testleri yazdığımız ve ardından çalıştırdığımız bir geliştirme yaklaşımıdır. Her test, kullandığı işlev henüz yazılmadığı için ilk çalıştırmada başarısız olur. Daha sonra fonksiyonları yazıp testleri tekrar çalıştırıyoruz. Burada bazı testler başarısız olurken diğerleri başarılı olur. Ardından, tüm testler geçene kadar kodu yeniden düzenlemeye devam ediyoruz.
- Davranış odaklı geliştirme yaklaşımı, yazılım özelliklerinin tüm paydaşların beklediği gibi davrandığını doğrulamak için testlerin yazıldığı bir geliştirme yaklaşımıdır.
- Jasmine-Jquery, Jquery ile oluşturulan ön uç kodlarının test edilmesine yardımcı olan bir düğüm paketidir.
Sonraki Eğitim
Yaklaşan eğitimimizde, tipik bir proje için test özellikleri yazmak için bu iki aracı (Jasmine ve Karma) kullanmanın yollarını keşfedeceğiz. Testlerimizin çalışır durumda olması için gerekli olan yudum, göz atma, vb. Gibi diğer araçları da nasıl kullanacağımızı göreceğiz.
PREV Eğitimi | SONRAKİ Eğitici
Önerilen Kaynaklar
- 8 En İyi Davranış Odaklı Geliştirme (BDD) Araçları ve Test Çerçeveleri
- Test Uzmanları TDD, BDD ve ATDD Tekniklerine Nasıl Dahil Edilir?
- TDD Vs BDD - Örneklerle Farkları Analiz Edin
- BDD (Davranış Odaklı Geliştirme) Çerçevesi: Eksiksiz Bir Eğitim
- Test Stratejisi Belgesi Nasıl Yazılır (Örnek Test Stratejisi Şablonuyla)
- 2021'deki En İyi 10 API Test Aracı (SOAP ve REST API Test Araçları)
- API Test Eğitimi: Yeni Başlayanlar İçin Tam Bir Kılavuz
- Örneklerle Python DateTime Eğitimi