Jasmine (JavaScript test çerçevesi) - Jasmine (JavaScript testing framework)

Yasemin
Logo yasemin.svg
Geliştirici(ler) Önemli Laboratuvarlar
İlk sürüm 14 Eylül 2010 ; 11 yıl önce ( 2010-09-14 )
kararlı sürüm
3.7.1 / 19 Mart 2021 ; 6 ay önce ( 2021-03-19 )
depo
Yazılmış JavaScript
İşletim sistemi Çapraz platform
Tip Ünite testi
Lisans MIT Lisansı
İnternet sitesi yasemin .github .io Bunu Vikiveri'de düzenleyin

Jasmine , JavaScript için açık kaynaklı bir test çerçevesidir . JavaScript'in etkin olduğu herhangi bir platformda çalışmayı, uygulamaya veya IDE'ye müdahale etmemeyi ve okunması kolay sözdizimine sahip olmayı amaçlar . ScrewUnit, JSSpec, JSpec ve RSpec gibi diğer birim test çerçevelerinden büyük ölçüde etkilenir .

Tarih

Pivotal Labs for Jasmine'deki geliştiriciler, Jasmine'in aktif olarak geliştirilmesinden önce JsUnit adlı benzer bir birim test çerçevesi geliştirmişti.

Özellikleri

  • Asenkron testi destekler.
  • Test çiftlerini uygulamak için 'casus' kullanır .
  • Jasmine'in Jasmine-jQuery adlı bir ön uç uzantısı aracılığıyla ön uç kodunun test edilmesini destekler.

kullanım

Jasmine, okunması kolay olmayı hedefliyor. Basit bir merhaba dünya testi, aşağıdaki koda benzer; burada tarif() bir dizi testi tanımlar ve it() bireysel bir test özelliğidir. "it()" adı, davranışa dayalı geliştirme fikrini takip eder ve tam bir cümle olması gereken test adındaki ilk kelime olarak hizmet eder. Kullanım, RSpec'inkine benzer bir sözdizimi izler .

Aşağıdaki kod bu işlevi test eder

function helloWorld() {
  return 'Hello world!';
}

ve çıktısının gerçekten "Merhaba dünya!" metni olduğunu doğrular.

describe('Hello world', function() {
  it('says hello', function() {
    expect(helloWorld()).toEqual('Hello world!');
  });
});

Jasmine, zengin bir yerleşik eşleştirici seti sağlar. Yukarıdaki örnekte, toEqual, merhabaWorld() işlevinden döndürülen değer ile 'Merhaba dünya!' arasındaki eşitliği kontrol eder. sicim. Bu, diğer test çerçevelerinde kullanılan iddialarla aynıdır . Yasemin eşleştiriciler basitçe bir Boolean değeri döndürür: beklenti eşleşirse true (testin geçtiğini göstermenin bir yolu) veya beklenti eşleşmezse false. Tek bir it() test belirtimine tek bir beklenti koymak iyi bir uygulamadır.

Diğer yerleşik eşleştiriciler arasında toBe, toBeTruthy, toBeFalsy, toContain, toBeDefined, toBeUndefined, toBeNull, toBeNaN, toBeGreaterThan, toBeLessThan, toBeCloseTo bulunur. Kimlik eşleştirici toBe, iki şeyin aynı nesne olup olmadığını kontrol eder. Koşul eşleşir toBeTruthy, toBeFalsy bir şeyin doğru mu yanlış mı olduğunu değerlendirir ve toBeDefined, toBeUndefined bir şeyin tanımlı mı tanımsız mı olduğunu kontrol eder. Adından da anlaşılacağı gibi, toBeNull bir şeyin boş olup olmadığını ve toBeNaN bir şeyin sayı olup olmadığını kontrol eder ( NaN ). Hassas eşleştirici toBeCloseTo iki parametreyi kabul eder ve ikinci parametre tarafından belirtildiği gibi belirli bir ondalık kesinlik miktarı verildiğinde bir sayının birinci parametreye yakın olup olmadığını kontrol eder. Eşleştirici toContain, bir dizi, liste veya dizede bir öğenin, nesnenin veya alt dizenin bulunduğunu doğrulamak için kullanılır.

Özel yerleşik eşleştirici toThrow, bir istisnanın oluşturulduğunu doğrulamak için kullanılır. Aşağıdaki kod, "Bazı istisnaların" atıldığını doğrular.

describe('Expect to throw an exception', function() {
  it('throws some exception', function() {
    expect( function(){ throw('Some exception'); }).toThrow('Some exception');
  });
});

Jasmine, özel eşleştiriciler, casuslar ve eşzamansız belirtimler için destek gibi bir dizi başka özelliğe sahiptir.

Yasemin test koşucuları

Jasmine, dahili bir test koşucusu ile birlikte gelir. Jasmine testleri, basit bir SpecRunner.html dosyası ekleyerek veya bunu Nodejs, Python, Ruby veya (eski yöntem) gibi çeşitli diller için desteklenen bir komut satırı test çalıştırıcısı olarak kullanarak veya basit bir JavaScript test çalıştırma aracı olan Karma'yı kullanarak tarayıcı testlerini çalıştırabilir. .

Yasemin ve Mocha Karşılaştırması

Mocha , bir başka popüler Javascript test çerçevesidir. Jasmine ve Mocha arasındaki karşılaştırma aşağıdaki tabloda verilmiştir.

Yasemin moka
Jasmine, casuslar kullanarak test dublörleri ile birlikte gelir. Mocha bir test ikili kütüphanesi ile gelmez ve genellikle Sinon gibi bir harici kütüphane kullanır.
Jasmine, testleri çalıştırmak için bir komut satırı yardımcı programına sahiptir. Mocha, testleri çalıştırmak için bir komut satırı yardımcı programına sahiptir.
Jasmine'in içinde yerleşik iddialar var. Mocha'nın bir iddia kitaplığı yoktur ve iddialar için Chai'yi kullanır.

Faydalar

  • Jasmine'in amacı tarayıcı, çerçeve, platform ve dilden bağımsız olmaktır.
  • Davranış odaklı geliştirmenin yanı sıra Jasmine, test odaklı geliştirmeyi de destekler .

Ayrıca bakınız

Referanslar

Dış bağlantılar