मैंने इस शब्द को कई बार पहले सुना था (प्रोग्रामिंग के बारे में बात करते समय) लेकिन कोई स्पष्टीकरण नहीं मिला कि इसका क्या अर्थ है। कोई अच्छा लेख या स्पष्टीकरण? मुझे उल्लेख करने लायक कुछ भी नहीं मिला।प्रोग्रामिंग में फिक्स्चर क्या हैं?
उत्तर
मुझे लगता है कि आप test fixtures की चर्चा करते हुए कर रहे हैं:
एक परीक्षण स्थिरता के उद्देश्य यह सुनिश्चित करना है कि वहाँ एक अच्छी तरह से जाना जाता है और तय वातावरण में परीक्षण ताकि परिणाम दोहराने योग्य हैं चलाए जा रहे हैं है। कुछ लोग इसे परीक्षा संदर्भ कहते हैं।
जुड़नार के उदाहरण:
- Loading a database with a specific, known set of data - Erasing a hard disk and installing a known clean operating system installation - Copying a specific known set of files - Preparation of input data and set-up/creation of fake or mock objects
(स्रोत: विकिपीडिया, ऊपर लिंक देखें)
यहाँ भी कुछ practical examples from the documentation of the 'Google Test' framework हैं।
बिल्कुल उस विषय पर, जुनीट के पास एक अच्छी तरह से समझाया गया दस्तावेज़ है। Here लिंक है!
लेख के संबंधित भाग है:
टेस्ट वस्तुओं की एक ज्ञात सेट की पृष्ठभूमि के खिलाफ चलाने के लिए की जरूरत है। वस्तुओं के इस सेट को एक परीक्षण स्थिरता कहा जाता है। जब आप परीक्षण लिख रहे होते हैं तो आपको अक्सर यह पता चल जाएगा कि आप वास्तव में मूल्यों की जांच करने के मुकाबले स्थिरता स्थापित करने के लिए कोड लिखने में अधिक समय व्यतीत करते हैं।
कुछ हद तक, आप लिखने वाले रचनाकारों पर सावधानीपूर्वक ध्यान देकर स्थिरता कोड लिखना आसान बना सकते हैं। हालांकि, एक बड़ी बचत साझा करने के लिए स्थिरता कोड से आता है। अक्सर, आप कई अलग-अलग परीक्षणों के लिए एक ही स्थिरता का उपयोग करने में सक्षम होंगे। प्रत्येक मामले स्थिरता के लिए थोड़ा अलग संदेश या पैरामीटर भेजेगा और विभिन्न परिणामों की जांच करेगा।
आप एक आम स्थिरता है, यहाँ तुम क्या करते है:
कि विधि एन्नोटेट में स्थिरता एन्नोटेट @ org.junit.Before के साथ एक विधि के प्रत्येक भाग के लिए एक फ़ील्ड जोड़ें और चर को प्रारंभ @ org.junit के साथ एक विधि। सेटअप में आवंटित किसी भी स्थायी संसाधन को रिलीज़ करने के बाद, उदाहरण के लिए, 12 स्विस फ़्रैंक, 14 स्विस फ़्रैंक और 28 यूएस डॉलर के विभिन्न संयोजनों के साथ काम करना चाहते हैं, जो पहले टेस्ट केस लिखने के लिए एक स्थिरता:
public class MoneyTest {
private Money f12CHF;
private Money f14CHF;
private Money f28USD;
@Before public void setUp() {
f12CHF= new Money(12, "CHF");
f14CHF= new Money(14, "CHF");
f28USD= new Money(28, "USD");
}
}
मुझे लगता है कि पीएचपी-इकाई परीक्षण बहुत अच्छा इस बात का समझा है:
परीक्षण लेखन एक ज्ञात राज्य में दुनिया की स्थापना की और फिर इसे वापस करने के लिए कोड लिख रहा है के सबसे अधिक समय लेने वाली भागों में से एक जब परीक्षण पूरा हो जाता है तो मूल स्थिति में। इस ज्ञात राज्य को परीक्षण की स्थिरता कहा जाता है।
इसके अलावा Yii दस्तावेजों एक अच्छी हालत में जुड़नार परीक्षण वर्णित:
यहाँस्वचालित परीक्षण कई बार निष्पादित करने के लिए की जरूरत है।यह सुनिश्चित करने के लिए कि प्रक्रिया दोहराने योग्य है, हम कुछ ज्ञात राज्यों को स्थिरता कहा जाता है। उदाहरण के लिए, ब्लॉग निर्माण में पोस्ट निर्माण सुविधा का परीक्षण करने के लिए, प्रत्येक बार जब हम परीक्षण चलाते हैं, तो तालिका पोस्ट के बारे में प्रासंगिक डेटा संग्रहीत करने के लिए तालिकाएं (उदा। पोस्ट तालिका, टिप्पणी तालिका) को कुछ निश्चित स्थिति में पुनर्स्थापित किया जाना चाहिए।
जुड़नार परीक्षण के सरल उदाहरण
<?php
use PHPUnit\Framework\TestCase;
class StackTest extends TestCase
{
protected $stack;
protected function setUp()
{
$this->stack = [];
}
protected function tearDown()
{
$this->stack = [];
}
public function testEmpty()
{
$this->assertTrue(empty($this->stack));
}
public function testPush()
{
array_push($this->stack, 'foo');
$this->assertEquals('foo', $this->stack[count($this->stack)-1]);
$this->assertFalse(empty($this->stack));
}
public function testPop()
{
array_push($this->stack, 'foo');
$this->assertEquals('foo', array_pop($this->stack));
$this->assertTrue(empty($this->stack));
}
}
?>
यह पीएचपी इकाई परीक्षण के नाम setUp
और tearDown
साथ कार्यों कि अपने परीक्षण सेटअप अपने डेटा चल रहा तुम से पहले और समाप्त हो गया पर आप उन्हें प्रारंभिक करने के लिए बहाल कर सकते हैं है राज्य।