Javascript kodunu test etmek ve node.js
'a kaydırmaya çalışmak için bazı Jasmine+Rhino
combo'ya sahip olun. Ancak, ağda herhangi bir kurulum talimatı bulamadı (ancak neredeyse sıfır yönergeye sahip sadece this bağlantısı). Bunu nasıl doğru yapacağınıza dair herhangi bir yardım (Ubuntu'da) çok takdir edilecektir.Jasmine ve node.js
18
A
cevap
28
Jasmine-node'u kullanmaya çalıştığımda aynı şeyi (belgelerle ilgili) düşündüm. Ancak ortaya çıktığı gibi, kurulacak neredeyse hiçbir şey yok - sadece RSpec ya da kullanabileceğiniz diğer test araçları gibi çalışıyor.
jasmine-node
yüklü olduğundan emin olun ve onun yürütülebilir çalıştırabilirsiniz: En Düğüm projesi ile Jasmine'i kullanmak için aşağıdakileri yapın.- Ürünü özelliklerinizi yazın! Bu adımların altında örnek bir özetim var.
- Teknik özelliklerinizi kullanarak,
jasmine-node specs/
(specs/
belirtimlerinizi içeren dizinin bulunduğu yeri) komutunu kullanarak çalıştırın.
Bu kadar! CoffeeScript veya jake
için cake
gibi bir tür oluşturma aracını kullanmanın yararını bulabilirsiniz.
Kısa bir süre önce jasmine düğümü kullandığım küçük bir projeden türlerin bir kısmının hızlı bir örneği; CoffeeScript'te olduğu için özür dilerim. (Bir kenara gibi: o --coffee
seçeneği geçmek CoffeeScript özellikleri karşı yasemin-düğümünü çalıştırmak için.)
Chess = require('../lib/chess')
Board = Chess.Board
jasmine = require('jasmine-node')
describe "A chess board", ->
beforeEach ->
@board = new Board
it "should convert a letter/number position into an array index", ->
expect(Board.squares["a1"]).toEqual(0)
expect(Board.squares["b1"]).toEqual(1)
expect(Board.squares["a2"]).toEqual(16)
expect(Board.squares["h8"]).toEqual(119)
it "should know if an array index represents a valid square", ->
expect(Board.is_valid_square 0).toBeTruthy()
expect(Board.is_valid_square 7).toBeTruthy()
expect(Board.is_valid_square 8).toBeFalsy()
expect(Board.is_valid_square 15).toBeFalsy()
expect(Board.is_valid_square 119).toBeTruthy()
expect(Board.is_valid_square 120).toBeFalsy()
expect(Board.is_valid_square 129).toBeFalsy()
expect(Board.is_valid_square -1).toBeFalsy()
it "should start off clear", ->
for i in [0..127]
if Board.is_valid_square(i)
expect(@board.piece_on(i)).toBeNull()
describe "#place_piece", ->
it "should place a piece on the board", ->
piece = jasmine.createSpy("piece")
@board.place_piece "a1", piece
expect(@board.piece_on "a1").toEqual(piece)
it "should set the piece's location to the given square's index", ->
piece = jasmine.createSpyObj(Piece, ["position"])
@board.place_piece "b5", piece
expect(piece.position).toEqual(65)
[Düzenle]
Ayrıca proje için uygun uzantılı (a spec_helper
dosya ekleyebilir) specs/
dizininizin kökünde. İşte benim için yeni bir eşleştiriciyi ekleyen içeriğim:
İlgili konular
- 1. node.js + coffeescript + jasmine için iyi IDE
- 2. ... Jasmine
- 3. Jasmine
- 4. Jasmine
- 5. Jasmine
- 6. Javascript JsTestDriver Jasmine & Jasmine-jquery
- 7. jasmine-node neden yardımcımı almıyor?
- 8. Jasmine ve RequireJS ile Squire.js örneği
- 9. Jasmine ve köşeli açmaya çalıştığınızda hata oluştu
- 10. Web Services ve Node.js Çalışan Rolü/Node.js
- 11. jasmine-node hataları için yığın izi yok
- 12. Node.js ve açısal
- 13. node.js ve SHA-1
- 14. Node.js ve Comet
- 15. mySql ve node.js mysljs
- 16. Node.js ve postgres LISTEN
- 17. Node.js ve kripto kitaplığı
- 18. node.js ve gm
- 19. Grunt, Jasmine, Yeoman
- 20. Jasmine spyOn çoklu dönüşlü
- 21. Jasmine JS'de nasıl?
- 22. Jasmine/PhantomJs spec koşucu
- 23. Jasmine testinde sahte pencere.location.reload
- 24. Jasmine javaScript özel durumu
- 25. Node.js neden Node.js?
- 26. Test jQuery Jasmine ile gezinme
- 27. Node.js, Express ve Jade - Formlar
- 28. Node.js ve Socket.io Oda Oluşturma
- 29. node.js ekspres app.get ve app.post
- 30. MongoDB ve Node.js dinamik sorguları
büyüleyici! sadece bir açıklama lütfen: javascript kodunun tarayıcıda (DOM modeli vb.) çalıştırılması gerekiyorsa, jasmine-node için herhangi bir eklemeye ihtiyacım var mı (demek 'Zombie.js': http://zombie.labnotes.org/)? – BreakPhreak
@BreakPhreak Bu, testinizin ne olduğuna bağlı. Test kodunuz DOM'a ** bağlıysa, o zaman düğüm için bir DOM kütüphanesi eklemeniz gerekir (Zombie.js gibi). Bununla birlikte, çoğu proje DOM'ı kullanır ancak DOM'a odaklanmaz. Bu durumda kodunuzu modüle edebilir, böylece DOM manipulasyonlarını test etmek istediğiniz fonksiyonlardan ayırabilirsiniz ve sadece DOM olmayan özelliklerin jasmine spesifikasyonlarında testini yapabilirsiniz. Aynı zamanda jasmine casuslarının DOM'a özgü fonksiyonları taklit etmek/alay etmek için kullanılması da uygundur, böylece jasmine-node ile çalıştırıldığında DOM desteği gerekli değildir (en iyi uygulama olarak düşünülebilir) – Sukima
@Sukima: teşekkürler! kodum aslında DOM'ı çok yoğun bir şekilde kullanıyor (ve parmak izlerinin altında temiz bir şekilde olmalı) – BreakPhreak