Jest Tutorial
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
;
}
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 इंटरैक्शन और ट्रेडिंग एल्गोरिदम का परीक्षण करने के लिए कर सकते हैं। उच्च सटीकता और भरोसेमंद परिणाम सुनिश्चित करने के लिए इन परीक्षणों का उपयोग करना महत्वपूर्ण है, खासकर जब वित्तीय जोखिम शामिल हो।
यहां कुछ संबंधित बाइनरी ऑप्शन विषय दिए गए हैं:
- **बाइनरी ऑप्शन क्या है**: बाइनरी ऑप्शन का परिचय।
- **बाइनरी ऑप्शन रणनीति**: विभिन्न ट्रेडिंग रणनीतियों का विश्लेषण।
- **तकनीकी विश्लेषण**: बाइनरी ऑप्शन ट्रेडिंग में तकनीकी विश्लेषण का उपयोग।
- **जोखिम प्रबंधन**: बाइनरी ऑप्शन ट्रेडिंग में जोखिम प्रबंधन तकनीकें।
- **ट्रेडिंग मनोविज्ञान**: बाइनरी ऑप्शन ट्रेडिंग में मनोवैज्ञानिक कारकों का प्रभाव।
- **बाइनरी ऑप्शन रेगुलेशन**: बाइनरी ऑप्शन ट्रेडिंग के लिए नियामक ढांचा।
- **बाइनरी ऑप्शन ब्रोकर**: विभिन्न बाइनरी ऑप्शन ब्रोकरों की तुलना।
- **बाइनरी ऑप्शन सिग्नल**: बाइनरी ऑप्शन ट्रेडिंग सिग्नल का उपयोग।
- **मनी प्रबंधन**: बाइनरी ऑप्शन ट्रेडिंग में मनी प्रबंधन तकनीकें।
- **चार्ट पैटर्न**: बाइनरी ऑप्शन ट्रेडिंग में चार्ट पैटर्न का उपयोग।
- **बाइनरी ऑप्शन संकेतक**: विभिन्न तकनीकी संकेतकों का उपयोग।
- **मूविंग एवरेज**: बाइनरी ऑप्शन ट्रेडिंग में मूविंग एवरेज का उपयोग।
- **आरएसआई (Relative Strength Index)**: बाइनरी ऑप्शन ट्रेडिंग में आरएसआई का उपयोग।
- **MACD (Moving Average Convergence Divergence)**: बाइनरी ऑप्शन ट्रेडिंग में MACD का उपयोग।
- **बोलिंगर बैंड्स**: बाइनरी ऑप्शन ट्रेडिंग में बोलिंगर बैंड्स का उपयोग।
- **फिबोनैचि रिट्रेसमेंट**: बाइनरी ऑप्शन ट्रेडिंग में फिबोनैचि रिट्रेसमेंट का उपयोग।
- **ट्रेडिंग वॉल्यूम विश्लेषण**: बाइनरी ऑप्शन ट्रेडिंग में वॉल्यूम विश्लेषण।
- **प्राइस एक्शन**: बाइनरी ऑप्शन ट्रेडिंग में प्राइस एक्शन का विश्लेषण।
- **कैंडलस्टिक पैटर्न**: बाइनरी ऑप्शन ट्रेडिंग में कैंडलस्टिक पैटर्न का उपयोग।
- **बाइनरी ऑप्शन डेमो अकाउंट**: डेमो अकाउंट का उपयोग करके अभ्यास करना।
- **बाइनरी ऑप्शन जोखिम अस्वीकरण**: बाइनरी ऑप्शन ट्रेडिंग से जुड़े जोखिमों के बारे में जानकारी।
- **बाइनरी ऑप्शन लाभ**: बाइनरी ऑप्शन ट्रेडिंग से संभावित लाभ।
- **बाइनरी ऑप्शन नुकसान**: बाइनरी ऑप्शन ट्रेडिंग से संभावित नुकसान।
- **बाइनरी ऑप्शन प्लेटफॉर्म**: विभिन्न बाइनरी ऑप्शन ट्रेडिंग प्लेटफॉर्म।
- **बाइनरी ऑप्शन ट्रेडिंग टिप्स**: बाइनरी ऑप्शन ट्रेडिंग के लिए उपयोगी टिप्स।
- **बाइनरी ऑप्शन पूर्वानुमान**: बाइनरी ऑप्शन ट्रेडिंग के लिए पूर्वानुमान।
यह ट्यूटोरियल Jest के मूल सिद्धांतों का एक परिचय है। Jest एक शक्तिशाली और बहुमुखी टेस्टिंग फ्रेमवर्क है, और यह आपके जावास्क्रिप्ट प्रोजेक्ट की गुणवत्ता और विश्वसनीयता को बेहतर बनाने में आपकी मदद कर सकता है।
अभी ट्रेडिंग शुरू करें
IQ Option पर रजिस्टर करें (न्यूनतम जमा ₹750) Pocket Option में खाता खोलें (न्यूनतम जमा ₹400)
हमारे समुदाय में शामिल हों
हमारे Telegram चैनल @strategybin को सब्सक्राइब करें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार के ट्रेंड्स की अलर्ट ✓ शुरुआती लोगों के लिए शैक्षिक सामग्री