2012-11-27 13 views
6

में मोचा परीक्षणों में "अविकसित चर" चेतावनी मैं नोड.जेएस पर नया हूं और इकाई परीक्षण के लिए ढांचा मोचा हूं, लेकिन मैंने क्लाउड 9 आईडीई में कुछ परीक्षण किए हैं, यह देखने के लिए कि यह कैसे काम करता है। कोड इस तरह दिखता है:क्लाउड 9

var assert = require("assert"); 
require("should"); 

describe('Array', function(){ 
    describe('#indexOf()', function(){ 
    it('should return -1 when the value is not present', function(){ 
     assert.equal(-1, [1,2,3].indexOf(5)); 
     assert.equal(-1, [1,2,3].indexOf(0)); 
    }); 
    }); 
}); 

describe('Array', function(){ 
    describe('#indexOf()', function(){ 
    it('should return the index when the value is present', function(){ 
     assert.equal(1, [1,2,3].indexOf(2)); 
     assert.equal(0, [1,2,3].indexOf(1)); 
     assert.equal(2, [1,2,3].indexOf(3)); 
    }); 
    }); 
}); 

परीक्षण काम करता है, तो मैं कंसोल में मोचा टाइप करें, लेकिन क्योंकि यह कहना है कि चर नहीं किया गया है आईडीई लाइनों जहां "वर्णन" और "यह" कर रहे हैं में चेतावनी से पता चलता घोषित ("अविकसित परिवर्तनीय")।

मुझे आश्चर्य है कि चेतावनियों से बचने के लिए मुझे इन परीक्षणों को क्या करना चाहिए।

धन्यवाद।

उत्तर

0

ऐसा इसलिए है क्योंकि mocha "निष्पादन" require मोचा कार्य (describe, और it) का उपयोग करने के लिए आवश्यक में अपने परीक्षण लपेटता है। निर्देशिका में mocha और _mocha पर एक नज़र डालें।

दूसरी ओर cloud9 एक शुद्ध node निष्पादन योग्य का उपयोग कर सभी प्रतीकों को हल करने का प्रयास करता है, इसलिए आपको हाथ से सब कुछ require करना होगा।

+0

तो मुझे हाथ से क्या चाहिए? क्योंकि मैंने var mocha = आवश्यकता ("मोचा") करने की कोशिश की है; और कोड को mocha.describe में बदलें ... और चेतावनियां गायब हो जाती हैं, लेकिन जब मोचा निष्पादित होती है तो यह विफल हो जाती है। – Juanillo

+0

@ जुआनिलो मुझे यकीन नहीं है कि इसके लिए एक आसान कामकाज है। आप अपने मोचा परीक्षण चलाने के लिए क्लाउड 9 को मजबूर कर सकते हैं लेकिन यह अविकसित चर समस्या को हल नहीं करता है। – soulcheck

+0

ठीक है, धन्यवाद, मैं इसके बारे में उत्सुक था, और जैसा कि मैं इस मंच पर नौसिखिया हूं, फिर भी मैं सोच रहा था कि अनुभवी प्रोग्रामर इस मामले में कुछ करते हैं या नहीं। लेकिन ऐसा लगता है कि अन्य असली परियोजनाएं समान कोड वाले मोचा का उपयोग करती हैं। शायद वे क्लाउड 9 में काम करते समय चेतावनियों को अनदेखा करते हैं, हालांकि यह वास्तव में आश्चर्यजनक है कि वास्तव में गंभीर परियोजनाओं में चेतावनियों के साथ एक कोड दिया जा सकता है। – Juanillo

2

क्लाउड 9 में आप ग्लोबल्स के लिए फ़ाइल के शीर्ष पर एक टिप्पणी के रूप में एक संकेत जोड़ सकते हैं और यह चेतावनियों को हटा देगा। उदा।

**/* global describe it before */** 

var expect = require('chai').expect; 


describe('Array', function(){ 
    describe('#indexOf()', function(){ 
    it('should return -1 when the value is not present', function(){ 
     expect(true).to.equal(true); 
    }) 
    }) 
}) 
+0

मुझे लगता है कि सही वाक्यविन्यास '/ * वैश्विक है * /' से पहले इसका वर्णन करता है। Http://stackoverflow.com/a/19572515/209727 भी देखें –

संबंधित मुद्दे