Mocha Js Test Framework’ü

Mocha node.js ve browserda çalışabilen zengin özellikler içeren bir test frameworküdür. Amacımız uygulama gelistirirken uygulamamızın testlerini toplu bir şekilde yazmaktır.

Adım:

Mocha’nın Yüklenmesi

Mocha node.js ve browserda çalışabilen  zengin özellikler içeren bir test frameworküdür. Amacımız uygulama gelistirirken uygulamamızın testlerini toplu bir şekilde yazmaktır.

1- Global yükleme 

*Npm install –global mocha 

2-Proje gerekliliği olarak yükleme 

*Npm install –save-dev mocha 

Yükleme tamamlandıktan sonra uygulam klasörünüze terminal aracılıgı ile gidin ve test adında bir klasör olusturun (testlerin toplu durması icin bu klasör olusturulur.Dosyaya istediginiz ismi verebilirsiniz).Mocha’nın calısmasını test etmek için aşagıdaki kod parcasını test klasörünün altında olusturacagınız test.js dosyasına kopyalayın ,kaydedin ve çıkın.

Örnek:

var assert = require('assert');  
describe('Array', function() { 
    describe('#indexOf()', function() { 
        it('should return -1 when the value is not present', function() {  
          assert.equal([1, 2, 3].indexOf(4), -1);
        }); 
    }); 
}); 

1- Mocha Kurulumu

2- Test klasörünün ve test.js dosyasının oluşturulması

3-Test içeriginin kopyalanması

4-Testin çalıştırılması

5-Testlerin çıktısı

Açıklamalar

Buraya kadar her şey yolunda ise testimizin çıktısı 5. fotograftaki gibi olacaktır.

Testimizin daha saglıklı işlemesi için bir kaç eklenti yüklememiz gerekecek: chai ve request kütüphaneleri.

Normalde mocha kendi içerisinde  assertion yetenegine sahip ancak chai bize çok fazla assertion seçeneği saglamaktadır.

Tabi ki Mocha’da oldugu gibi bunları da kullanabimek için dependency’leri npm paket yöneticisi aracılığı ile yüklememiz gerekiyor

- npm instal chai

- npm install request

Şu anda sistemimizde Mocha(Test çatısı gibi düsünebilirsiniz)-chai(assertionları saglamak için) ve son olarakta npm-request (http isteklerini  kolay bir yoldan saglamak için) bulunmaktadır.

Şimdi sık sık kullandıgımız assertion nedir bunu açıklayalım.Assertion kelime manası olarak iddia etmek anlamına gelmektedir.Biz mocha aracılıgı ile API’yımızı test ederken çesitli HTTP isteklerinde bulunacagız ve bu isteklerin responseları hakkında iddialarda bulunacagız.Testimizi çalıstırdıgımızda bu iddialar dogrulanır ise mocha bize PASSED ,dogrulanmaz ise FAILED yanıtlarını dönecektir.Örnek bir iddia da bulunursak biz X servisini http-get istegi ile çagırdıgımızda response status olarak 200 OK dönmesini istiyoruz dedik.Testi çalıstırdıgımızda bize failed döner ise bir problem var demektir.Hemen kontrollere başlayıp hatayı gidermeliyiz.Yok beklediğimiz gibi sonuc dönüyor ise o zaman problem yok demektir.

Kulanacağımız Terimler

1. Describe

Bir servisi test ederken birden fazla test yazılacaktır.Bir dosya içerisindeki testleri kendi aralarında gruplamak için describe kullanılır.Yapılacak testlerin hangi amaçla yazıldıgını genel olarak ifade eder.Örnegin sisteme doküman yükleme işlemi gerceklestirdiğimizi varsayalım.Bu içerik  resim,video,ses veya farklı türde bir dosya olabilir.İşte tamda burada describe devreye girer.Ses yükleme testi için ayrı bir describe ,video için ayrı bir describe bölümü tanımlarsak testimizi takip kolaylaşır.Genel manada üst başlık gibi de düsünülebilir.

Yukarıda beyaz yazılar(describe) genel bir başlık olarak testimizi ifade etmektedir.

2. It

it yapıları describe altında tanımlanan daha spesifik testlerdir.Bir describe ifadesi altında birden fazla “it” ifadesi barındırabilir.İddialarımızı bu it yapılarının içerisine yerlestiririz.Son resimdeki yesil tikli alanlar bizim it yapılarımızın içerigini ifade etmektedir.

ÖRNEK UYGULAMA

var assert = require('assert');
describe('Array', function() {
  describe('#indexOf()', function() {
    
    it('should return -1 when the value is not present', function() {
      assert.equal([1, 2, 3].indexOf(4), -1);
    });
  });
}); 

bu uygulama üzerinden gidecek olursak describe bölümünde genel olarak Array’leri test edeceğimizi anlarız.it bölümüne geldigimizde ise spesifik olarak eger o indexte eleman yok ise bize -1 sonucu donmesini test ediyoruz.İddia ettigimiz olay test sonucunda gerceklesir ise testlerimiz başarı ile geçecektir.