2016-07-05 9 views
5

Jasmine website पर मुझे लगता है कि हम xdescribe या xit द्वारा व्यक्तिगत चश्मा द्वारा स्वीट अक्षम कर सकते हैं। क्या केवल एक उम्मीद को अक्षम करने का कोई तरीका है (जैसे xexpect)?जैस्मीन की अपेक्षा को अक्षम करें, जैसे xdescribe या xit?

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

मैं कॉन्फ़िगरेशन या पर्यावरण चर के आधार पर व्यक्तिगत अपेक्षाओं को वैकल्पिक रूप से चिह्नित करना चाहता हूं। एक बार स्विच करना अच्छा लगेगा, और फिर उम्मीद के चारों ओर एक रैपर बनाएं, जो केवल तभी विफल रहता है जब हम स्थानीय रूप से परीक्षण चला रहे हों (डेटाबेस तक पहुंच के साथ)। expect साथ भी ऐसा ही करने के लिए एक तरह से

dbit('creates new user', function() {}); 

वहाँ है:

इसलिए उदाहरण के लिए मैं एक नया कल्पना परिवार बना सकते हैं:

if (process.env.DB_AVAILABLE) { 
    dbit = it; 
} else { 
    dbit = xit; 
} 

और चश्मा कि निम्नलिखित के रूप में डेटाबेस कनेक्शन पर निर्भर लिखना (उदाहरण के लिए dbexpect)?

यदि मेरे दृष्टिकोण के साथ मूल रूप से कुछ गलत है, तो इसे वापस न रखें और मुझे बताएं।

+0

'expect' बयान करने के लिए इसे prepending के बारे में सुनिश्चित नहीं हैं कि - लेकिन आप संभवतः 'browser.getProcessedConfig()' का उपयोग कर सकते हैं और 'सेलेनियम एड्रेस' की जांच कर सकते हैं और सशर्त 'उम्मीद' कर सकते हैं (मान लें कि आपके पास 2 कॉन्फ़िगरेशन हैं, एक स्थानीय के लिए और एक सीआई सर्वर के लिए)। 'अगर (स्थानीय) {उम्मीद (सत्य) .toBe (सत्य)} अन्य {उम्मीद (झूठी) .toBe (झूठी)} '... लेकिन यदि आप इसे कई जगहों पर कर रहे हैं तो यह महंगा हो सकता है। – Gunderson

+0

मैंने कभी भी 'it' को पर्यावरण के आधार पर एक चर में बदलने के बारे में सोचा नहीं था ... इसके लिए धन्यवाद :) – Gunderson

+0

धन्यवाद। हां, मैंने इसके बारे में सोचा था, लेकिन एक साफ समाधान की तलाश में था –

उत्तर

1

आप को लागू करने से अपने स्वयं के xexpect बना सकते हैं सभी तरीकों/एक खाली समारोह के साथ गुण:

var xexpect = function() { 
    return xexpect; 
}; 

Object.getOwnPropertyNames(jasmine.Expectation.prototype).forEach(function(name){ 
    xexpect[name] = xexpect; 
}); 

Object.defineProperty(xexpect, 'not', {get: xexpect}); 

उपयोग:

xexpect(1).toBeGreaterThan(2); 

xexpect(true).not.toEqual(true); 
संबंधित मुद्दे