Jest Tutorial

From binaryoption
Jump to navigation Jump to search
Баннер1

Jest Tutorial

Jest एक शक्तिशाली और व्यापक रूप से उपयोग किया जाने वाला जावास्क्रिप्ट टेस्टिंग फ्रेमवर्क है, जो फेसबुक द्वारा विकसित किया गया है। यह विशेष रूप से रिएक्ट (React) अनुप्रयोगों के परीक्षण के लिए उपयुक्त है, लेकिन इसका उपयोग किसी भी जावास्क्रिप्ट प्रोजेक्ट के लिए किया जा सकता है। Jest, परीक्षणों को लिखने, चलाने और डिबग करने की प्रक्रिया को सरल बनाता है, और यह कई उपयोगी सुविधाओं के साथ आता है जैसे कि मॉकिंग (Mocking), स्नैपशॉट टेस्टिंग (Snapshot Testing) और कोड कवरेज (Code Coverage)।

यह ट्यूटोरियल Jest के मूल सिद्धांतों को समझने और आपके जावास्क्रिप्ट प्रोजेक्ट में परीक्षणों को लागू करने में मदद करेगा। हम Jest की स्थापना, कॉन्फ़िगरेशन, बुनियादी परीक्षण लिखने, एसिंक्रोनस कोड का परीक्षण, मॉकिंग, और स्नैपशॉट टेस्टिंग जैसे विषयों को कवर करेंगे।

Jest की स्थापना और कॉन्फ़िगरेशन

Jest स्थापित करने के लिए, आपको Node.js और npm (Node Package Manager) की आवश्यकता होगी। यदि आपके पास ये पहले से नहीं हैं, तो उन्हें Node.js वेबसाइट से डाउनलोड और इंस्टॉल करें।

Jest को स्थापित करने के लिए, अपने प्रोजेक्ट डायरेक्टरी में टर्मिनल खोलें और निम्नलिखित कमांड चलाएं:

{{{ npm install --save-dev jest }}}

यह आपके प्रोजेक्ट में Jest को एक डेवलपमेंट डिपेंडेंसी के रूप में स्थापित करेगा।

Jest को कॉन्फ़िगर करने के लिए, आपको एक `jest.config.js` फाइल बनाने की आवश्यकता होगी। यह फाइल आपके Jest प्रोजेक्ट के लिए कॉन्फ़िगरेशन विकल्प प्रदान करती है। एक बुनियादी `jest.config.js` फाइल इस तरह दिख सकती है:

test).js?(x)',

 ],
 transform: {
   '^.+\\.js$': 'babel-jest',
 },

};


  • `testEnvironment`: परीक्षण वातावरण को निर्दिष्ट करता है। `node` Node.js वातावरण के लिए है।
  • `testMatch`: परीक्षण फ़ाइलों के पैटर्न को निर्दिष्ट करता है।
  • `transform`: फ़ाइलों को ट्रांसफ़ॉर्म करने के लिए इस्तेमाल होने वाले ट्रांसफ़ॉर्मर को निर्दिष्ट करता है। यहां, हम Babel का उपयोग जावास्क्रिप्ट फ़ाइलों को ट्रांसफ़ॉर्म करने के लिए कर रहे हैं।

आप अपनी आवश्यकताओं के अनुसार इन विकल्पों को अनुकूलित कर सकते हैं।

बुनियादी परीक्षण लिखना

Jest में परीक्षण लिखने के लिए, आपको `describe` और `it` फ़ंक्शंस का उपयोग करना होगा। `describe` फ़ंक्शन परीक्षणों के एक समूह को परिभाषित करता है, जबकि `it` फ़ंक्शन एक विशिष्ट परीक्षण केस को परिभाषित करता है।

यहां एक सरल उदाहरण दिया गया है:

{{{ // sum.js function sum(a, b) {

 return a + b;

}

module.exports = sum; }}}

{{{ // sum.test.js const sum = require('./sum');

describe('sum function', () => {

 it('should add two numbers correctly', () => {
   expect(sum(1, 2)).toBe(3);
 });
 it('should handle negative numbers', () => {
   expect(sum(-1, 2)).toBe(1);
 });

}); }}}

इस उदाहरण में, हमने `sum` फ़ंक्शन के लिए दो परीक्षण केस लिखे हैं। पहला परीक्षण केस जांचता है कि `sum` फ़ंक्शन दो संख्याओं को सही ढंग से जोड़ता है या नहीं। दूसरा परीक्षण केस जांचता है कि `sum` फ़ंक्शन नकारात्मक संख्याओं को सही ढंग से संभालता है या नहीं।

`expect` फ़ंक्शन एक Assertion प्रदान करता है, जो यह जांचता है कि एक मान किसी विशेष स्थिति को पूरा करता है या नहीं। `toBe` एक मैचर है जो जांचता है कि दो मान समान हैं या नहीं। Jest कई अन्य मैचर प्रदान करता है, जैसे कि `toEqual`, `toBeGreaterThan`, `toBeLessThan`, और `toBeNull`।

एसिंक्रोनस कोड का परीक्षण

एसिंक्रोनस कोड का परीक्षण करने के लिए, आप `async/await` या Promises का उपयोग कर सकते हैं।

यहां `async/await` का उपयोग करके एक एसिंक्रोनस फ़ंक्शन का परीक्षण करने का एक उदाहरण दिया गया है:

{{{ // fetchData.js async function fetchData(url) {

 const response = await fetch(url);
 const data = await response.json();
 return data;

}

module.exports = fetchData; }}}

{{{ // fetchData.test.js const fetchData = require('./fetchData');

describe('fetchData function', () => {

 it('should fetch data from the URL', async () => {
   const data = await fetchData('https://jsonplaceholder.typicode.com/todos/1');
   expect(data.title).toBe('delectus aut autem');
 });

}); }}}

इस उदाहरण में, हमने `fetchData` फ़ंक्शन के लिए एक एसिंक्रोनस परीक्षण केस लिखा है। हमने `async` कीवर्ड का उपयोग परीक्षण फ़ंक्शन को एसिंक्रोनस बनाने के लिए किया है, और हमने `await` कीवर्ड का उपयोग `fetchData` फ़ंक्शन को कॉल करने और परिणाम का इंतजार करने के लिए किया है।

मॉकिंग

मॉकिंग का उपयोग निर्भरताओं को अलग करने और अधिक नियंत्रित परीक्षण वातावरण बनाने के लिए किया जाता है। Jest में मॉकिंग करने के लिए, आप `jest.mock` फ़ंक्शन का उपयोग कर सकते हैं।

यहां एक उदाहरण दिया गया है:

{{{ // api.js function fetchDataFromAPI() {

 // वास्तविक API कॉल
 return Promise.resolve({ data: 'API Data' });

}

module.exports = fetchDataFromAPI; }}}

{{{ // component.js const fetchDataFromAPI = require('./api');

function MyComponent() {

 const data = fetchDataFromAPI();
 return `Data: ${data}`;

}

module.exports = MyComponent; }}}

{{{ // component.test.js const MyComponent = require('./component'); const fetchDataFromAPI = require('./api');

jest.mock('./api');

describe('MyComponent', () => {

 it('should display data fetched from the API', () => {
   fetchDataFromAPI.mockResolvedValue({ data: 'Mocked Data' });
   const component = MyComponent();
   expect(component).toBe('Data: Mocked Data');
 });

}); }}}

इस उदाहरण में, हमने `fetchDataFromAPI` फ़ंक्शन को मॉक किया है। `jest.mock('./api')` कॉल `fetchDataFromAPI` फ़ंक्शन के एक मॉक संस्करण को स्वचालित रूप से बनाता है। हमने `mockResolvedValue` विधि का उपयोग मॉक फ़ंक्शन के लौटे मान को निर्दिष्ट करने के लिए किया है।

स्नैपशॉट टेस्टिंग

स्नैपशॉट टेस्टिंग का उपयोग UI घटकों के आउटपुट को कैप्चर करने और उन्हें भविष्य के परीक्षणों के साथ तुलना करने के लिए किया जाता है। यदि UI घटक का आउटपुट बदलता है, तो स्नैपशॉट परीक्षण विफल हो जाएगा, जो आपको UI परिवर्तनों के बारे में सूचित करेगा।

स्नैपशॉट परीक्षण लिखने के लिए, आप `expect` फ़ंक्शन के साथ `toMatchSnapshot` मैचर का उपयोग कर सकते हैं।

यहां एक उदाहरण दिया गया है:

{{{ // MyComponent.js function MyComponent() {

return

Hello, world!

;

}

module.exports = MyComponent; }}}

{{{ // MyComponent.test.js const MyComponent = require('./MyComponent'); const renderer = require('react-test-renderer');

describe('MyComponent', () => {

 it('should render correctly', () => {
   const tree = renderer.create(<MyComponent />).toJSON();
   expect(tree).toMatchSnapshot();
 });

}); }}}

इस उदाहरण में, हमने `MyComponent` घटक के लिए एक स्नैपशॉट परीक्षण लिखा है। `renderer.create` फ़ंक्शन घटक को रेंडर करता है और एक ट्री संरचना बनाता है। `toJSON` विधि ट्री संरचना को एक JSON ऑब्जेक्ट में परिवर्तित करती है। `toMatchSnapshot` मैचर JSON ऑब्जेक्ट की तुलना एक संग्रहीत स्नैपशॉट फ़ाइल से करता है। यदि JSON ऑब्जेक्ट स्नैपशॉट फ़ाइल से मेल खाता है, तो परीक्षण पास हो जाएगा। अन्यथा, परीक्षण विफल हो जाएगा।

उन्नत विषय

  • **कॉन्फ़िगरेशन:** Jest को विभिन्न प्रकार के कॉन्फ़िगरेशन विकल्पों के साथ अनुकूलित किया जा सकता है। आप `jest.config.js` फ़ाइल में इन विकल्पों को निर्दिष्ट कर सकते हैं।
  • **कोड कवरेज:** Jest कोड कवरेज रिपोर्ट उत्पन्न कर सकता है, जो आपको यह देखने में मदद करता है कि आपके परीक्षण आपके कोड के कितने हिस्से को कवर करते हैं।
  • **टाइपस्क्रिप्ट समर्थन:** Jest टाइपस्क्रिप्ट प्रोजेक्ट के साथ काम कर सकता है।
  • **मॉड्यूल रिज़ॉल्यूशन:** Jest मॉड्यूल रिज़ॉल्यूशन को संभालता है, इसलिए आपको अपने परीक्षणों में मॉड्यूल के पथ को निर्दिष्ट करने के बारे में चिंता करने की आवश्यकता नहीं है।

बाइनरी ऑप्शन के साथ संबंध (एक सैद्धांतिक अन्वेषण)

हालांकि Jest सीधे तौर पर बाइनरी ऑप्शन ट्रेडिंग से संबंधित नहीं है, लेकिन यह उन अनुप्रयोगों के परीक्षण के लिए महत्वपूर्ण हो सकता है जो बाइनरी ऑप्शन ट्रेडिंग प्लेटफॉर्म के लिए बनाए गए हैं। उदाहरण के लिए, आप Jest का उपयोग बाइनरी ऑप्शन ट्रेडिंग प्लेटफॉर्म के UI घटकों, API इंटरैक्शन और ट्रेडिंग एल्गोरिदम का परीक्षण करने के लिए कर सकते हैं। उच्च सटीकता और भरोसेमंद परिणाम सुनिश्चित करने के लिए इन परीक्षणों का उपयोग करना महत्वपूर्ण है, खासकर जब वित्तीय जोखिम शामिल हो।

यहां कुछ संबंधित बाइनरी ऑप्शन विषय दिए गए हैं:

यह ट्यूटोरियल Jest के मूल सिद्धांतों का एक परिचय है। Jest एक शक्तिशाली और बहुमुखी टेस्टिंग फ्रेमवर्क है, और यह आपके जावास्क्रिप्ट प्रोजेक्ट की गुणवत्ता और विश्वसनीयता को बेहतर बनाने में आपकी मदद कर सकता है।

अभी ट्रेडिंग शुरू करें

IQ Option पर रजिस्टर करें (न्यूनतम जमा ₹750) Pocket Option में खाता खोलें (न्यूनतम जमा ₹400)

हमारे समुदाय में शामिल हों

हमारे Telegram चैनल @strategybin को सब्सक्राइब करें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार के ट्रेंड्स की अलर्ट ✓ शुरुआती लोगों के लिए शैक्षिक सामग्री

Баннер