सरू का दावा: 9 तथ्य जो आपको जानना चाहिए

सरू अभिकथन हमें एक विशेष अभिकथन पर जोर देने में मदद करता है जो सत्यापन चरण हैं जो यह सुनिश्चित करते हैं कि अपेक्षित परिणाम वास्तविक परिणाम के बराबर है या नहीं। परीक्षण स्वचालन में, हम यह सत्यापित करने के लिए एक कथन पर जोर देते हैं कि परीक्षण अपेक्षित परिणाम उत्पन्न कर रहा है। यदि अभिकथन विफल हो जाता है, तो परीक्षण मामला यह सुनिश्चित करने में विफल रहता है कि कोई बग है। इस लेख में, हम के बारे में चर्चा करेंगे हैंड्सन कार्यान्वयन और उदाहरणों के साथ सरू अभिकथन.

टेबल ऑफ़ कंटेंट

सरू अभिकथन

सरू अभिकथन क्या है?

सरू चाई अभिकथन पुस्तकालय और सिनॉन और JQuery जैसे एक्सटेंशन का उपयोग करता है और लपेटता है। सरू स्वचालित रूप से प्रतीक्षा करता है और दावा हल होने तक पुनः प्रयास करता है। आवेदन कैसा दिखना चाहिए, इसका वर्णन करने के लिए अभिकथन का उपयोग किया जा सकता है। हम वांछित स्थिति तक पहुंचने तक प्रतीक्षा, पुनः प्रयास, ब्लॉक के संयोजन के साथ साइप्रस दावे का उपयोग कर सकते हैं।

सरू मुखर पाठ

सामान्य अंग्रेजी में, हम एक अभिकथन का वर्णन कुछ इस तरह करेंगे, मुझे उम्मीद है कि बटन में लॉगिन टेक्स्ट होगा. साइप्रस में वही दावा लिखा जा सकता है:

cy.get('button').should('have.value', 'login')

यदि बटन में 'लॉगिन' मान है, तो उपरोक्त अभिकथन पारित हो जाएगा।

सरू आम अभिकथन

सरू के सामान्य दावे का एक सेट है जिसका उपयोग हम अपने परीक्षण मामलों में करते हैं। हम उनका उपयोग करेंगे .should() . आइए उपयोग के मामले और उदाहरणों को देखें।

कुछ सामान्य सरू अभिकथन नीचे सूचीबद्ध हैं

  1. लंबाई
  2. वैल्यू
  3. पाठ संदर्भ
  4. वर्ग
  5. अस्तित्व
  6. सीएसएस
  7. दर्शनीयता
  8. राज्य
  9. अक्षम संपत्ति

सरू लंबाई अभिकथन

length() जाँच करेगा कि क्या विशेष तत्व की लंबाई है

cy.get('dropdown').should('have.length', 5)

सरू मूल्य अभिकथन

यदि विशेष तत्व का अपेक्षित मूल्य है, तो सरू का मूल्य मुखर होगा

cy.get('textfield').should('have.value', 'first name')

सरू पाठ प्रसंग अभिकथन

यदि तत्व में विशेष टेक्स्ट है तो टेक्स्ट संदर्भ जोर देगा

cy.get('#user-name').should('have.text', 'John Doe')

सरू वर्ग अभिकथन

दावा करता है कि वर्ग मौजूद है या विशेष तत्व में वर्ग होना चाहिए

cy.get('form').find('input').should('have.class', 'disabled')

सरू अस्तित्व अभिकथन

एक्ज़िस्टेंस कमांड जाँचता है कि विशेष तत्व डोम में मौजूद है या नहीं

cy.get('#button').should('exist')

सरू सीएसएस अभिकथन

CSS अभिकथन जाँचता है कि क्या विशेष तत्वों में कोई विशेष गुण है

cy.get('.completed').should('have.css', 'text-decoration', 'line-through')

सरू दृश्यता अभिकथन

सरू दृश्यता अभिकथन का दावा है कि क्या DOM तत्व UI में दिखाई दे रहा है

cy.get('#form-submit').should('be.visible')

सरू राज्य अभिकथन

डोम तत्व की स्थिति पर जोर देता है

cy.get(':radio').should('be.checked')

सरू अक्षम संपत्ति अभिकथन

सरू अक्षम संपत्ति अभिकथन का दावा है कि क्या तत्व अक्षम है

cy.get('#example-input').should('be.disabled')

सरू पुनः प्रयास अभिकथन

एक अभिकथन के साथ पालन किया जाने वाला एकल आदेश क्रम में निष्पादित होगा। प्रारंभ में, कमांड निष्पादित होती है और फिर अभिकथन निष्पादित हो जाएगा। एक एकल कमांड के बाद कई अभिकथन भी क्रम में निष्पादित होंगे - क्रमशः पहला और दूसरा अभिकथन। इसलिए जब पहला अभिकथन पास हो जाता है, तो पहले और दूसरे अभिकथन को फिर से आदेशों के साथ निष्पादित किया जाएगा।

उदाहरण के लिए, नीचे दिए गए आदेश में दोनों शामिल हैं .should() और .and() अभिकथन आदेश, जहां .and() अन्यथा के रूप में जाना जाता है .should()

cy.get('.todo-list li') // कमांड (2)। पाठ सामग्री, 'पहला आइटम')। to.equal('todo A') उम्मीद ($li.get(2).textContent, 'दूसरा आइटम')।to.equal('todo B')})

सरू अभिकथन उदाहरण

इस खंड में, हम सरू में विभिन्न प्रकार के अभिकथनों पर चर्चा करेंगे जैसे कि

  • निहित अभिकथन
  • स्पष्ट अभिकथन

हम उदाहरणों के साथ दोनों प्रकारों पर विस्तार से विचार करेंगे

सरू में निहित अभिकथन

निहित अभिकथन में, हम उपयोग करते हैं .should() or .and() आदेश। ये अभिकथन आदेश आदेशों की श्रृंखला में वर्तमान में प्राप्त विषय पर लागू होते हैं। वे पहले उपजे विषय पर निर्भर हैं।

हम उपयोग करने के तरीके पर एक उदाहरण देखेंगे .should() or .and() आज्ञाओं

cy.get ('बटन')। चाहिए ('हैव। क्लास', 'सक्षम')

- .and() जो का उपनाम है .should() , हम कई अभिकथनों को श्रृंखलाबद्ध कर सकते हैं। ये आदेश अधिक पठनीय हैं।

cy.get('#title') . should('have.class', 'active') .and('have.attr', 'href', '/post')

उपरोक्त उदाहरण के साथ जंजीर है .should() यह बताते हुए कि इसमें "सक्रिय" वर्ग होना चाहिए, उसके बाद .and() उसी आदेश के खिलाफ निष्पादित किया जाता है। यह तब बहुत मददगार होता है जब हम एक से अधिक कमांड्स पर जोर देना चाहते हैं।

सरू में स्पष्ट अभिकथन

अभिकथन में स्पष्ट विषय पास करना स्पष्ट प्रकार के सरू अभिकथन के अंतर्गत आता है। यहाँ, हम उपयोग करेंगे expect और assert दावे के रूप में आदेश। स्पष्ट अभिकथन का उपयोग तब किया जाता है जब हम एक ही विषय के लिए कई अभिकथनों का उपयोग करना चाहते हैं। हम स्पष्ट अभिकथन का भी उपयोग करते हैं सरू जब हम कस्टम करना चाहते हैं तर्क करने से पहले तर्क।

हम में देखेंगे स्पष्ट सरू के लिए उदाहरण अभिकथन

उम्मीद (सत्य)। to.be.true // एक बूलियन उम्मीद (वस्तु) के लिए जाँच।

नकारात्मक सरू अभिकथन

सकारात्मक अभिकथन के समान, सरू में भी नकारात्मक अभिकथन हैं। हम अभिकथन कथन के उपसर्ग में जोड़े गए "नहीं" कीवर्ड का उपयोग करेंगे। आइए नकारात्मक अभिकथन का एक उदाहरण देखें

cy.get('#loading').should('not.be.visible')

नकारात्मक अभिकथन की अनुशंसा केवल उन मामलों में की जाती है, जो यह सत्यापित करने के लिए की जाती हैं कि अनुप्रयोग द्वारा कोई विशिष्ट कार्रवाई किए जाने के बाद कोई विशेष स्थिति अब उपलब्ध नहीं है।

उदाहरण के लिए, मान लें कि एक टॉगल चेक किया गया है और सत्यापित करें कि इसे हटा दिया गया है

// सबसे पहले आइटम को पूर्ण cy.contains('li.todo', 'Write test') के रूप में चिह्नित किया गया है। / सीएसएस वर्ग को हटा दिया गया है

सरू कस्टम अभिकथन संदेश

सरू के साथ, हम मैचर्स की लाइब्रेरी का उपयोग करके अतिरिक्त जानकारी या दावे के लिए कस्टम संदेश प्रदान कर सकते हैं। मैचर्स में छोटे फ़ंक्शन होते हैं जो मूल्यों को अलग करते हैं और विस्तृत त्रुटि संदेश फेंक देंगे। चाय अभिकथन पुस्तकालय हमारे कोड को अधिक पठनीय और परीक्षण विफलता को बहुत उपयोगी दिखने में मदद करेगा

कॉन्स्ट उम्मीद = आवश्यकता ('चाई')। इसकी अपेक्षा करें ('एक संख्या की जांच करें', () => {कॉन्स्ट वैल्यू = 10 कॉन्स्ट अपेक्षित = 3 उम्मीद (मान)। बराबर (अपेक्षित)})
cyyy
सरू कस्टम त्रुटि संदेश

सरू अभिकथन सर्वोत्तम अभ्यास

हम आदेशों की एक श्रृंखला का उपयोग करके एक ही ब्लॉक में कई अभिकथन लिख सकते हैं। इकाई परीक्षणों की तरह एकल अभिकथन लिखना आवश्यक नहीं है। कई नीचे की तरह दावे लिखते हैं। उस तरह से लिखना ठीक है, लेकिन यह कोड की रेखा और अतिरेक को बढ़ाता है।

वर्णन करें ('मेरा फॉर्म', () => {पहले (() => { cy.visit('/users/new') cy.get('#first').type('ashok')}) it( 'सत्यापन विशेषता है', () => { cy.get('#first'). should('have.attr', 'data-validation', 'required') // यह कहते हुए कि क्या #first में फ़ील्ड की आवश्यकता है } ) it ('सक्रिय वर्ग है', () => { cy.get('#first'). should('have.class', 'active') // यह कहते हुए कि क्या #first में सक्रिय वर्ग है}) it( 'प्रथम नाम को प्रारूपित किया है', () => { cy.get('#first'). should('have.value', 'Ashok') // यह कहते हुए कि क्या #first ने पहले अक्षर को बड़ा किया है})})

जैसा कि आप ऊपर देख सकते हैं, वही चयनकर्ता और अभिकथन प्रकार दोहराया जा रहा है। इसके बजाय, हम इन आदेशों को एक एकल अभिकथन में श्रृंखलाबद्ध कर सकते हैं जो सभी जाँचों को एक रेखीय तरीके से करता है।

वर्णन करें ('मेरा फॉर्म', () => {पहले (() => { cy.visit ('/ उपयोगकर्ता/नया')}) यह ('पहले नाम को मान्य और प्रारूपित करता है', () => { cy.get ('#first') .type('ashok') . should('have.attr', 'data-validation', 'required') .and('have.class', 'active') .and('have .value', 'अशोक') }) })

जैसा कि ऊपर उल्लेख किया गया है, हम एकल चयनकर्ता को कई अभिकथनों के साथ श्रृंखलाबद्ध कर सकते हैं! यह सरू में अभिकथन लिखने की अनुशंसित सर्वोत्तम प्रथाओं में से एक है।

सरू में पेज ऑब्जेक्ट मॉडल के बारे में समझने के लिए, क्लिक करें यहाँ उत्पन्न करें.