2011-03-20 13 views
36

... çerçeveler en popülerNode.js için test sınama çerçevesi özellikle test uyumsuz kodunu destekliyor mu? <a href="https://github.com/joyent/node/wiki/modules#testing">node.js module list</a> listelenen 30+ test çerçeveler vardır

? Ve onların artıları ve eksileri nelerdir?

Çok sayıda async çağrısı içeren kodun birim sınamasını destekleyen bir çerçeve arıyorum (muhtemelen diğer düğüm projelerinin çoğunda olduğu gibi). Ayrıca, karmaşık olmaktan çok basit ve küçük bir şey arıyorum.

  • Nodeunit basittir ve size çağrılacak beklemek ve bir test bittiğinde kaç iddialar tanımlamak sağlayarak zaman uyumsuz kodunu destekler:

    Şimdiye kadar içine baktım.
  • Vowsjs ilginç görünüyor. Testleri güzel bir şekilde yapılandırmanıza ve birçok gelişmiş özellik ile birlikte gelmenizi sağlar. Bu özelliklerin gerçekten yararlı olup olmadığından emin değil misiniz, yoksa yolunuza mı çıkacaklar? Bir test çerçevesi almak ve asenkron aramaları destekleyebilir olarak

cevap

35

expresso ve vows'dur. Orada birçok iyi seçenek olmasına rağmen. Güncelleme:Mocha, expresso deposundaki Readme.md'ye göre, expresso'un halefidür. should.js, BDD stili onaylamalara izin vermek için sıklıkla Mocha ile birlikte kullanılır.

Ne seçerseniz seçin,kodlu çekirdek veya üçüncü taraf modüllerini kullanmanızı öneririz.

testosterone kullanıyorum/bakımını yapın, seri olarak sınama yapan küçük bir sınama çerçevesi kullanın, böylece hafifçe kötüye kullanabilirsiniz. Bunu kullanan pek çok kişi değil.

2

QUnit kadar basittir. JQuery için test aracıdır, bu yüzden yüksek oranda desteklendiğinden ve iyi çalıştığından emin olabilirsiniz.

Özellikle eşzamansız olayları taklit etmenizi sağlayan alaycı bir çerçeve olan Sinon ile tümleştirmeyi düşünebilirsiniz. This tutorial ve orada bağlı öğreticinin diğer bölümleri, eşzamansız kodu test etmek için Sinon'un nasıl kullanılacağını gösterir. Tarayıcıda, ancak bunu düğüm uygulamalarına uyarlamanız gerekir. En popüler seçenekler

+3

Sadece bildiğiniz gibi, Sinon da nodeunit için kullanılabilir. Aslında, nodeunit orijinal olarak QUnit API'sine dayanıyordu, ancak uyumsuzluk testini çok daha kolay hale getirmek için güncellendi. Ek bir bonus olarak, nodeunit aynı zamanda tarayıcıda kodları istemci tarafı ile paylaşmak isteyip istemediğinizi de test edebilir :) – Caolan

9

Mart 2012'den beri Nodeunit kullanıyor ve daha geriye bakmadık. Çalışması kolay ve basittir; modül seviyesi ve sınıf düzeyi fikstürler arasında seçim yapmanızı (kurulum/yırtıp çıkarma) sağlar, makul bir yerleşik onaylama kümesi vardır ve komut satırı aracı çok esnektir. nodemon ile de birleştirmeyi deneyin.

Özetle bir oylama yaptık, ancak testleri tanımlamak için yepyeni bir garip sözdizimi istemedik. İhtiyacınız olan her şey iddialar, fikstürler ve iyi bir koşum. Ve Nodeunit tasarıya mükemmel bir şekilde uyuyor.

2

Henüz kullanmamıştım ama Pivotal Labs'den Jasmine?QUnit işe yaramaz asenkron çünkü

Ben özellikle OKJS yazdım: Kendi kütüphane için

+0

buna uygun gibi görünüyor! – FutuToad

+0

Son zamanlarda birim testi için mocha kullanıyorum. –

+0

Niçin Jasmine'i kullanıyorsunuz? – FutuToad

0

Minör fiş, ama daha önemlisi ben sadece diğer koşum geliştiriciler JS bir zaman uyumsuz test nasıl görünmesi gerektiği düşünmek istiyorum. QUinit istisnaları yakalayamaz (!) Ve derinlik kaydını tutmak için hacky start() gerektirir.

Test çerçevelerinin çoğu, zaman aşımlarını test etmek ve istisnaları yakalamak için basit bir geri arama sarıcısına sahip değildir. Neden emin değilim - geri çekimler asenkron gelişim kalbinde yer almaktadır. =/

setTimeout(function() { 
    ok(true, "Passed and ready to resume!"); 
    start(); 
    }, 1000); 

OKJS olay dinleyicileri de durumları yakalar ve testte başarısız bir interal ölü adamın tetiği ile olağanüstü zaman uyumsuz istekleri izler.

setTimeout(unit.callback("test callback is fired"), 500); 
    setTimeout(unit.callback("callback fired, with subtests", function() { 
     unit.assert("in callback, true === true", true,true); 
    }), 500); 

kurumsal çözümler dışında bu tarz desteği görmek isteriz. OKJS'nin savunucuları arasında yer alan diğer özelliklerden bazıları, seri olarak (reçete stili) uygulanan test bloklarıdır, ancak çözümlenecek olaylar için bloklar arasında beklerler.

0

test-studio birim sınama için güçlü, web tabanlı bir ön uç sağlayan bir npm paketidir. Şu anda sadece mocha'yı destekliyor ve bireysel veya test gruplarını yürütmek ve düğüm denetçisini bireysel testlere atmak gibi şeyler sunuyor.

Daha fazla bilgi edinin here.

İlgili konular