2011-04-05 24 views
8

मैं कॉफ़ीस्क्रिप्ट में लिखे गए एक छोटे से आवेदन के लिए यूनिट परीक्षण के लिए जैस्मीन का उपयोग करने की कोशिश कर रहा हूं। मुझे कई स्रोत मिलते हैं कि कॉफ़ीस्क्रिप्ट से संकलित जेएस पर यूनिट परीक्षण पूरी तरह से किया जा सकता है। नाम स्थान प्रदूषण से बचने के लिए यदि आप किसी अज्ञात फ़ंक्शन में लिपटे हैं तो जेएस कोड के डेटा और तर्क का उपयोग कैसे करते हैं? हर बार -b ध्वज के साथ संकलक चलाने का एकमात्र समाधान है?कॉफ़ीस्क्रिप्ट + यूनिट परीक्षण: वैश्विक चर?

उत्तर

9

आपको अपने कॉफीस्क्रिप्ट मॉड्यूल से सामने आने वाले सार्वजनिक इंटरफ़ेस के खिलाफ परीक्षण करना चाहिए। अपने मॉड्यूल Foo कहा जाता है और दो सार्वजनिक विधियों, bar और baz को उजागर करता है, तो आप उन्हें इस प्रकार के रूप में निर्यात कर सकता है:

Foo = 
    bar: (a, b) -> 
     #implementation 
    baz: (c) -> 
     #implementation 
(exports ? this).Foo = Foo 

इस तर्ज पर अन्य रूपों, निश्चित रूप से कर रहे हैं। उदाहरण के लिए underscore.coffee देखें। अब जब आपका सार्वजनिक इंटरफ़ेस खुलासा हुआ है, तो इसे अपने जैस्मीन परीक्षणों के लिए उपलब्ध कराएं जो भी उचित है। आप चमेली नोड उपयोग कर रहे हैं, उदाहरण के लिए, आप निम्न करना होगा:

Foo = require('foo') #assuming your module is compiled to foo.js 

आपका परीक्षण तो Foo.bar और Foo.baz कहेंगे।

3

बहुत कम मामले हैं जहां -b का उपयोग करना समझ में आता है; सामान्य परीक्षण उनमें से एक नहीं है। लॉन्सेसा काफी सही है कि आपको जो कुछ भी आप परीक्षण करते हैं उसे निर्यात करना चाहिए (इसे exports को नोड के तहत संलग्न करना, या ब्राउज़र में window)। यह वास्तव में किसी भी प्रोग्रामिंग भाषा के समान है।

जैस्मीन और CoffeeScript के लिए, विशेष रूप से jQuery के साथ संयोजन के रूप में, आप InstantJasmineCoffee परियोजना और this related blog post पर एक नज़र रखना चाहिए।

+0

ब्लॉग पोस्ट लिंक अब 404 है ... – number5

3

मैंने बस इस पर ठोकर खाई, लेकिन यदि आप सस्ते पर जैस्मीन + कॉफीस्क्रिप्ट के साथ शुरुआत करना चाहते हैं, तो आप इस कंकाल सिनात्रा ऐप को देख सकते हैं जिसे मैंने गिथब में पोस्ट किया था। यह कॉफीस्क्रिप्ट गतिशील रूप से संकलित करने के लिए एक रैक फ़िल्टर का उपयोग करता है। उदाहरण चश्मा & निर्देशों में शामिल थे: https://github.com/searls/jasmine-coffee

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