ऐसा लगता है कि सबसे जल्दी चौखटे से पहले वास्तविक उम्मीद इस्तेमाल किया (, शायद किसी अज्ञात कारण के लिए हालांकि पासा रोल?)। फिर भी प्रोग्रामिंग भाषाओं के विकास के साथ, और कोड की की वृद्धि हुई, यह आदेश उलट गया। अधिकांश धाराप्रवाह इंटरफेस आम तौर पर प्राकृतिक भाषा की नकल करने की कोशिश करते हैं और इकाई परीक्षण ढांचे अलग नहीं होते हैं।
दावा में, हम को आश्वस्त करना चाहते हैं कि कुछ ऑब्जेक्ट कुछ शर्तों से मेल खाता है। यह, प्राकृतिक भाषा रूप है के रूप में यदि आप अपने परीक्षण कोड की व्याख्या करने के लिए गए थे तो आप शायद
कहेंगे
बजाय
"इस परीक्षण में, मुझे यकीन है कि परिकलित मान 5 के बराबर है बनाना"
"इस परीक्षण में, मैं सुनिश्चित करता हूं कि 5 गणना मूल्य के बराबर है"।
अंतर बड़ा नहीं हो सकता है, लेकिन चलो इसे आगे बढ़ाएं। इस पर विचार करें:
Assert.That(Roses, Are(Red));
सही के बारे में लगता है। अब:
Assert.That(Red, Are(Roses));
एचएम ..? यदि आप किसी ने आपको बताया कि गुलाब लाल हैं तो शायद आपको आश्चर्य नहीं होगा। अन्य तरीकों के आसपास, लाल गुलाब, संदिग्ध प्रश्न उठाते हैं। Yoda, कोई भी?
योदा के एक महत्वपूर्ण बिंदु बनाने - think लिए आपको बलों को उलट दिया।
यह और भी हो जाता है अप्राकृतिक जब अपने दावे को और अधिक जटिल हैं:
Assert.That(Forest, Has.MoreThan(15, Trees));
आप कैसे रिवर्स होता है कि एक? वन द्वारा 15 से अधिक पेड़ लगाए जा रहे हैं?
यह दावा (संशोधन के लिए एक प्रेरणा कारक के रूप में प्रवाह) किसी भी तरह परिवर्तन में परिलक्षित होता है कि NUnit के माध्यम से चला गया है - मूल रूप से (Assert.AreEqual
) यह उम्मीदवास्तविक से पहले (पुरानी शैली) का इस्तेमाल किया। Fluent एक्सटेंशन (या NUnit की शब्दावली का उपयोग करने के लिए, बाधा आधारित - Assert.That
) उस आदेश को उलट दिया।
क्या आपने परीक्षण विफल होने पर उत्पादित डिफ़ॉल्ट त्रुटि संदेशों को देखा है? इसीलिए। या आप पूछ रहे हैं कि संदेश इस तरह क्यों लिखे गए हैं? क्या आप सी "मानक" के बारे में पूछ रहे हैं जो '23 (ए) 'बनाम' के बारे में चिंताओं के बारे में पूछता है यदि (ए = 23)'? क्या आप यही पूछ रहे हैं? –
शायद सुविधा के लिए, दावा अभिव्यक्ति तुलनात्मक रूप से जटिल हो सकती है ताकि अपेक्षित परिणाम पहले इसे ढूंढना आसान हो जाए। –
@ एसएलॉट: मुझे पता है कि मुझे उन्हें उस क्रम में क्यों पारित करने की आवश्यकता है, मैं जानना चाहता हूं कि अधिकांश यूनिट परीक्षण इंटरफेस इस तरह क्यों लिखे गए हैं। –