ब्लॉक मैं सिर्फ देखा है कि स्पॉक की स्थिति पर जोर नहीं पड़ता अगर मैंस्थिति उम्मीद
def myTest() {
given:
a = true
expect:
if (a) {
1 == 2
}
else {
1 == 1
}
}
ऊपर परीक्षा में के रूप में की उम्मीद ब्लॉक में एक if
खंड जोड़ने पारित करेंगे के बाद से की स्थिति की जाँच नहीं कर रहे हैं । या शर्त जांच अग्रेषित नहीं की जाती है अगर बयान जारी करें।
यह करने के लिए वैकल्पिक हल करता है, तो ब्लॉक के अंदर assert
बयान को जोड़ने के लिए है, यानी 1 == 2.
क्या मुझे इसमें रुचि है पर जोर, क्यों कार्यक्षमता इस तरह है है? क्या इसका काम करने का कोई और तरीका है? मुझे लगता है कि अगर स्टेटमेंट कार्यक्षमता है तो ग्रोवी के साथ इसका कुछ संबंध है, लेकिन मुझे भाषा विवरण अच्छी तरह से नहीं पता है। सबसे अधिक संभावना है कि अगर कथन स्पॉक की उम्मीद ब्लॉक के साथ काम करने के लिए कुछ भी वापस नहीं करता है।
प्रश्न का उत्तर नहीं दे रहा है, लेकिन आप इस तरह क्यों परीक्षण करेंगे? क्या आपको ज्ञात चीजों का परीक्षण नहीं करना चाहिए? यदि अलग-अलग पथ हैं, तो क्या वे अलग-अलग परीक्षण नहीं होने चाहिए? –
सेकेंडिंग किस समय कहा गया। यदि परीक्षण विफल रहता है तो क्या आप यह बता सकेंगे कि एक्स चीजों में से एक की बजाय वास्तव में क्या असफल रहा? शायद यह सिर्फ एक उदाहरण था लेकिन प्रत्येक परीक्षण केवल एक चीजों का परीक्षण करना चाहिए। शायद आपको कुछ मूल्यों के साथ समान परीक्षण की आवश्यकता है? यदि ऐसा है तो आपको स्पॉक में कहां बयान देना चाहिए। –
@tim_yates @Aseem शर्तों के लिए जांच करते समय एक कथन का उपयोग करने का कारण परीक्षण इनपुट की जटिलता के कारण है और केवल कुछ असाधारण मामले अन्य शाखा में आते हैं, जो मूल रूप से आलस्य के लिए उबाल जाता है :) उपयोग का मामला कुछ है जैसे कि 'उस स्थिति को जांचें ए एक्स को तब तक पूरा नहीं किया जाता है जब तक एक्स, उस स्थिति की जांच करें कि बी स्थिति को पूरा नहीं किया गया है'। जहां ब्लॉक के साथ हल किया जा सकता है, लेकिन मेरे स्वाद के लिए यह भी verbose है। – kaskelotti