Pengujian Unit Node.js [ditutup]


164

Apakah ada kerangka kerja unit pengujian node.js (sisi server js) yang bagus saat ini di luar sana? Saya mencari sesuatu yang sedikit lebih dalam dari modul Assert yang disediakan.

Jawaban:


66

Saya akhirnya menggunakan node-unit dan saya sangat senang dengannya.

Saya menggunakan Expresso awalnya tetapi fakta bahwa itu menjalankan tes secara paralel menyebabkan beberapa masalah. (Misalnya menggunakan perlengkapan database tidak berfungsi dengan baik dalam situasi ini).


25
Expresso tidak memaksa Anda untuk menjalankan tes secara paralel. Berikan argumen --serial dan jalankan semuanya dalam urutan riang.
einaros

3
Baru saja mengunduh dan menggunakan nodeunit ... melakukan persis seperti yang dikatakan, berfungsi pertama kali!
Michael Dausmann

1
Nodeunit agak aneh dengan mengharuskan setiap tes memanggil .done()imho.
Kos

2
Jika saya memulai proyek baru sekarang saya mungkin akan menggunakan Mocha sebagai kerangka kerja pengujian
evilcelery

1
Nodeunit .done()harus mengakomodasi pengujian asinkron. Saya setuju itu bisa sedikit berat di kali, tetapi memiliki alasan yang bagus untuk melakukannya dengan cara ini.
L0j1k

48

Saya juga mencari kerangka uji yang layak untuk simpul dan menemukan Mocha . Ini adalah penerus resmi untuk Expresso dan tampaknya sangat dewasa.

Hal ini memungkinkan untuk plug-in pustaka pernyataan yang berbeda, ia menawarkan reporter untuk cakupan kode dan hal-hal lain (Anda dapat plug-in sendiri). Itu dapat menjalankan sinkronisasi atau async dan memiliki API ringkas.

Saya akan mencobanya dan melaporkan kembali ...

EDIT:

Setelah banyak waktu yang didedikasikan untuk proyek-proyek lain saya akhirnya kembali ke proyek Javascript dan punya waktu untuk bermain-main dengan moka. Saya sangat merekomendasikan penggunaannya. Tes membaca dengan sangat baik, integrasi dengan tegukan hebat dan tes berjalan sangat cepat. Saya dapat mensetup standalone otomatis dan juga di dalam browser (browserify) uji coba dan laporan cakupan kode yang sesuai dalam sekitar setengah hari (sebagian besar waktu dihabiskan untuk memahami cara menggunakan browserify dari tegukan). Bagi saya, moka sepertinya pilihan yang sangat baik untuk kerangka pengujian.

MEMPERBARUI:

Saya masih sangat yakin tentang Mocha. Integrasi dengan chai memungkinkan untuk plugin gaya pernyataan yang berbeda. Anda dapat checkout pengaturan yang berfungsi di proyek github ini . Saya menggunakannya dengan karma sekarang, mengintegrasikan laporan cakupan kode, pengamat otomatis dan integrasi yang baik dengan IntelliJ


Tautan proyek github rusak. Bisakah Anda memperbaruinya?
karlisup


15

Saya pribadi hanya menggunakan modul menegaskan, tetapi juga menemukan diri saya menginginkan lebih. Saya telah melihat melalui banyak modul simpul dan kerangka kerja unit pengujian yang populer adalah simpul-unit dan harus (yang dibuat oleh orang yang sama dengan Expresso (mungkin nama yang diperbarui?)

Sumpah juga terlihat menjanjikan.


15
Saya mendukung Anda hanya untuk permainan kata itu.
ThomasReggi

15

Secara pribadi saya terjebak dengan Expresso , tetapi ada banyak kerangka kerja yang berbeda di luar sana, mengakomodasi sebagian besar gaya pengujian.

Joyent memiliki daftar lengkap ; coba saja.


1
Expresso adalah satu-satunya yang masuk akal bagi saya, dan bekerja dengan kode asinkron dengan benar. Mencoba sumpah dan qunit juga.
balupton

5

sumpah adalah pustaka pengujian unit solid untuk node.js tetapi sintaksinya membosankan.

Saya telah menulis abstraksi tipis yang disebut vows- fluent yang membuat API dapat ditagih.

Dan saya telah menulis abstraksi lain, [sumpah-is] yang dibangun di atas sumpah-fasih dan memperlihatkan sintaks gaya BDD.

Contohnya adalah

var is = require("vows-is");

is.suite("testing is fun").batch()

    .context("is testing fun?")
        .topic.is("yes")
        .vow.it.should.equal("yes")

.suite().run({
    reporter: is.reporter
});

Lebih banyak contoh


6
amen untuk itu, sintaks sumpah adalah IMO yang menghebohkan
Donn Felker

Telah bermain dengan sumpah dengan pembungkus yang nyaman. Tampak seperti ide yang bagus untuk menguji json api tetapi dengan cepat muncul pendek. Saya juga cenderung menemukan bahwa apis yang sangat berorientasi pada panggilan chaining seperti ini sulit digunakan dan sulit di-debug. Mereka terlihat bagus dalam contoh, tetapi tidak bekerja dengan baik di bawah penggunaan dunia nyata.
drekka

@drekka sumpah demi sumpah adalah hal yang mengerikan. use mocha
Raynos

Cobalah sekarang, tetapi tampaknya mengalami banyak masalah serupa.
drekka

Anda pasti salah menggunakannya. coba baca gist.github.com/2896455 . @drekka
Raynos


1

Jika Anda terbiasa dengan QUnit , Anda bisa menggunakan node-qunit yang merupakan semacam pembungkus simpul di sekitar kerangka kerja QUnit yang ada.


0

Awalnya dibuat untuk node.js, deadunit adalah pustaka pengujian unit javascript untuk node.js dan browser. Beberapa atribut uniknya:

  • Kurva belajar mudah
  • Dapat menampilkan hasil tes pada baris perintah (berwarna atau teks biasa) atau sebagai html
  • Ini mencetak baris kode aktual di mana pernyataan Anda berada, jadi output Anda masuk akal bahkan jika Anda tidak menghabiskan banyak waktu menulis komentar tes
  • Ini memiliki countpernyataan sederhana yang membuat berurusan dengan pengecualian yang diharapkan dan pernyataan asinkron menjadi mudah
  • itu mencetak pengecualian dan data terlampir yang mereka miliki
  • itu akan memberi tahu Anda jika kode Anda menggantung (sesuatu yang tidak Anda inginkan, tetapi biasanya tidak diperhatikan)
  • Memiliki API yang didorong oleh peristiwa memungkinkan hasil pengujian streaming di seluruh jaringan, atau dengan cara apa pun yang Anda inginkan.
  • Mendukung pengujian dengan simpul-serat

0

Saya baru saja mengunggah proyek yang saya gunakan untuk menguji unit simpul dengan karma dan Jasmine: narma . Modul simpul Anda dimuat ke browser nodewebkit sehingga Anda dapat menjalankan modul simpul dan menggunakan perpustakaan seperti jquery di tumpukan yang sama.


0

test-studio adalah paket npm yang menyediakan ujung depan yang kuat dan berbasis web untuk pengujian unit. Ini mendukung hal-hal seperti mengeksekusi tes individu atau kelompok dan melangkah simpul-inspektur ke dalam tes individu. Saat ini mendukung moka dan lebih banyak kerangka kerja akan didukung dalam permintaan yang diberikan di masa depan.

Baca lebih lanjut di sini .

Penafian: Saya penulis.


1
Sepertinya ini ditulis oleh Anda, bukan? jika demikian, Anda harus mengungkapkan fakta itu dalam jawaban Anda.
strugee
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.