2012-02-19 10 views
20

मैं एक नोडजेस प्रोजेक्ट शुरू कर रहा हूं और मोचा और ज़ोंबीजे के साथ बीडीडी करना चाहता हूं। दुर्भाग्य से मैं उस वाक्य में बस हर गूढ़ शब्द के लिए नया हूँ। मैं मोचा और ज़ोंबीजेस को परीक्षण ठीक कर सकता हूं, लेकिन मैं दोनों को एकीकृत नहीं कर सकता - क्या ज़ोंबीजेज़ परीक्षण चलाने के लिए मोचा का उपयोग करना संभव है, और यदि ऐसा है, तो यह कैसा लगेगा?मोचा और ज़ोंबीजेएस

बस मुझे शुरू करने के लिए "हैलो वर्ल्ड" की तलाश है, लेकिन एक ट्यूटोरियल/उदाहरण भी बेहतर होगा।

धन्यवाद!

+0

मेरा जवाब क्या था जो आपको दिमाग में था? – Industrial

+0

हाँ, यही वही था जो मैं चाहता था। धन्यवाद! – Joel

उत्तर

36

मान लिया जाये कि आप पहले से ही mocha, zombie और expect.js स्थापित किया है निर्देशों के अनुसार, यह आपके लिए काम करना चाहिए:

:

// Put below in a file in your *test* folder, ie: test/sampletest.js: 

var expect = require('expect.js'), 
Browser = require('zombie'), 
browser = new Browser(); 

describe('Loads pages', function(){ 

    it('Google.com', function(done){ 

     browser.visit("http://www.google.com", function() { 
      expect(browser.text("title")).to.equal('Google'); 
      done(); 
     }); 
    }); 

}); 

तो फिर आप अपने जड़ आवेदन फ़ोल्डर से mocha आदेश को चलाने के लिए सक्षम होना चाहिए

# mocha -R spec 

    Loads pages 
    ✓ Google.com (873ms) 


    ✔ 1 tests complete (876ms) 

नोट: यदि आपके परीक्षण टाइमआउट के कारण विफल रहता है, तो यह mocha 'सेंट बढ़ाने में मदद करता है -t तर्क का उपयोग करके imeout थोड़ा सा सेटिंग। पूर्ण विवरण के लिए मोचा के दस्तावेज देखें।

+0

ध्यान रखें कि यदि इस समस्या के कारण nodejs 0.10.xx के साथ उपयोग किया जाता है तो ज़ोंबीज विफल हो जाता है https://github.com/assaf/zombie/issues/487 चीयर्स –

+4

ध्यान रखें कि समस्या ठीक हो रही है! –

7

मैंने इस सवाल का एक लंबा जवाब लिखा है कि असीमित परीक्षणों, अच्छे प्रथाओं ('पहले()', 'बाद()', टीडीडी, ...) के बारे में महत्वपूर्ण गठजोड़, और वास्तविक दुनिया के उदाहरण द्वारा सचित्र किया गया है।

http://redotheweb.com/2013/01/15/functional-testing-for-nodejs-using-mocha-and-zombie-js.html

+1

क्या आपने कभी इस पोस्ट को स्थानांतरित किया था? – Alex

+0

आह, मैं वास्तव में भी इसे पढ़ना चाहता था! ऐसा नहीं लगता कि आप इसे पोस्टहेवन में ले गए हैं, है ना? –

+0

टी हे, ज़ोंबी धागा। आलेख स्थानांतरित हो गया: http://redotheweb.com/2013/01/15/functional-testing-for-nodejs-using-mocha-and-zombie-js.html –

-1

आप माइक्रोसॉफ्ट विजुअल स्टूडियो का उपयोग कर रहे हैं, तो आप रोब एश्टन के Zombify पर एक नज़र लेने के लिए चाहते हो सकता है। सब कुछ स्वीकार्य रूप से एकीकृत है ताकि आप जावास्क्रिप्ट या कॉफीस्क्रिप्ट में अपने परीक्षण के मामलों को लिखना शुरू कर सकें। वैसे, कॉफीस्क्रिप्ट सीखना आपको एक घंटे की तरह ले जाएगा, और यह हर मिनट के लायक है।

1

यदि आप किसी पृष्ठ के लिए अपने "यूनिट" परीक्षणों के लिए स्वीकृति परीक्षण और मोचा के लिए ककड़ी-जेएस का उपयोग करना चाहते हैं, तो आप cuked-zombie (विज्ञापन के लिए खेद) का उपयोग कर सकते हैं।

GitHub पर रीडमी में वर्णित है जैसे कि यह स्थापित है, लेकिन एक फाइल में अपनी दुनिया config जगह कहा जाता है विश्व config.js

`/* globals __dirname */ 
var os = require('os'); 
var path = require('path'); 

module.exports = { 
    cli: null, 
    domain: 'addorange-macbook': 'my-testing-domain.com', 
    debug: false 
}; 

तो इस तरह से अपनी इकाई परीक्षण में ज़ोंबी के साथ मोचा का उपयोग करें:

var chai = require('chai'), expect = chai.expect; 
var cukedZombie = require('cuked-zombie'); 

describe('Apopintments', function() { 

    describe('ArrangeFormModel', function() { 
    before(function(done) { // execute once 
     var that = this; 

     cukedZombie.infectWorld(this, require('../world-config')); 

     this.world = new this.World(done); 

     // this inherits the whole world api to your test 
     _.merge(this, this.world); 
    }); 

    describe("display", function() { 

     before(function(done) { // executed once before all tests are run in the discribe display block 
     var test = this; 
     this.browser.authenticate().basic('maxmustermann', 'Ux394Ki'); 

     this.visitPage('/someurl', function() { 
      test.helper = function() { 

      }; 

      done(); 
     }); 
     }); 

     it("something on the /someurl page is returned", function() { 
     expect(this.browser.html()).not.to.be.empty; 
     }); 
संबंधित मुद्दे