সাইপ্রেস দাবী: 9টি তথ্য আপনার জানা উচিত


সাইপ্রেস অ্যাসার্শন আমাদেরকে একটি নির্দিষ্ট দাবী জাহির করতে সাহায্য করে যা যাচাইকরণের ধাপ যা নিশ্চিত করে যে প্রত্যাশিত ফলাফল প্রকৃত ফলাফলের সমান কিনা। পরীক্ষা অটোমেশনে, পরীক্ষাটি প্রত্যাশিত ফলাফল তৈরি করছে তা যাচাই করার জন্য আমরা একটি বিবৃতি জাহির করি। যদি দাবি ব্যর্থ হয়, তাহলে পরীক্ষার ক্ষেত্রে একটি বাগ আছে তা নিশ্চিত করে ব্যর্থ হয়। এই নিবন্ধে, আমরা সম্পর্কে আলোচনা করা হবে হ্যান্ডসন বাস্তবায়ন এবং উদাহরণ সহ সাইপ্রেস অ্যাসারশন.

সূচি তালিকা

সাইপ্রেস দাবী

সাইপ্রেস অ্যাসারশন কি?

সাইপ্রেস চাই অ্যাসারশন লাইব্রেরি এবং সিনন এবং জেকুয়েরির মতো এক্সটেনশন ব্যবহার করে এবং মোড়ানো করে। দাবির সমাধান না হওয়া পর্যন্ত সাইপ্রেস স্বয়ংক্রিয়ভাবে অপেক্ষা করে এবং পুনরায় চেষ্টা করে। অ্যাপ্লিকেশনটি কেমন হওয়া উচিত তা বর্ণনা করতে দাবী ব্যবহার করা যেতে পারে। আমরা অপেক্ষা, পুনরায় চেষ্টা, ব্লকের সংমিশ্রণ সহ সাইপ্রেস দাবী ব্যবহার করতে পারি যতক্ষণ না এটি পছন্দসই অবস্থায় পৌঁছায়।

সাইপ্রেস অ্যাসার্ট টেক্সট

সাধারণ ইংরেজিতে, আমরা এমন কিছু একটি দাবী বর্ণনা করব, আমি আশা করব বোতামটিতে লগইন টেক্সট থাকবে. একই দাবী সাইপ্রেস হিসাবে লেখা যেতে পারে

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')

সাইপ্রেসের অস্তিত্বের দাবি

Existence কমান্ড পরীক্ষা করে যে নির্দিষ্ট উপাদানটি DOM-এ উপস্থিত আছে বা বিদ্যমান কিনা

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

সাইপ্রেস সিএসএস দাবি

CSS Assertion নির্দিষ্ট উপাদানগুলির একটি নির্দিষ্ট সম্পত্তি আছে কিনা তা পরীক্ষা করে

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

সাইপ্রেস দৃশ্যমানতা দাবি

সাইপ্রেস ভিজিবিলিটি অ্যাসারশন নিশ্চিত করে যে DOM উপাদানটি UI-তে দৃশ্যমান কিনা

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

সাইপ্রেস স্টেট দাবী

DOM উপাদানের অবস্থা জাহির করে

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

সাইপ্রেস অক্ষম সম্পত্তি দাবী

সাইপ্রেস অক্ষম সম্পত্তি দাবী উপাদানটি নিষ্ক্রিয় কিনা তা নিশ্চিত করে

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

সাইপ্রেস পুনঃপ্রচার দাবি

একটি দাবির সাথে অনুসরণ করা একটি একক কমান্ড ক্রমানুসারে কার্যকর হবে। প্রাথমিকভাবে, কমান্ডটি কার্যকর হয় এবং তারপরে দাবিটি কার্যকর করা হবে। একাধিক দাবী দ্বারা অনুসরণ করা একটি একক কমান্ডও ক্রমানুসারে কার্যকর হবে - যথাক্রমে প্রথম এবং দ্বিতীয় দাবি। সুতরাং যখন প্রথম দাবীটি পাস হয়, প্রথম এবং দ্বিতীয় দাবীটি আবার কমান্ডের সাথে কার্যকর করা হবে।

উদাহরণস্বরূপ, নীচের কমান্ডে উভয়ই রয়েছে .should() এবং .and() দাবী আদেশ, যেখানে .and() অন্যথায় হিসাবে পরিচিত হয় .should()

cy.get('.todo-তালিকা li') // কমান্ড .should('have.length', 2) // assertion .and(($li) => { // 2টি আরো দাবী আশা ($li.get) (0).পাঠ্য বিষয়বস্তু, 'প্রথম আইটেম').to.equal('todo A') প্রত্যাশা ($li.get(1).textContent, 'দ্বিতীয় আইটেম').to.equal('todo B') })

সাইপ্রেস দাবী উদাহরণ

এই বিভাগে, আমরা সাইপ্রেসের বিভিন্ন ধরণের দাবী নিয়ে আলোচনা করব যেমন

  • অন্তর্নিহিত বক্তব্য
  • সুস্পষ্ট দাবী

আমরা উদাহরণ সহ উভয় প্রকারের বিস্তারিত বিবেচনা করব

সাইপ্রেস মধ্যে অন্তর্নিহিত দাবী

অন্তর্নিহিত দাবিতে, আমরা ব্যবহার করি .should() or .and() আদেশ এই দাবী কমান্ডগুলি কমান্ডের চেইনে বর্তমানে প্রাপ্ত বিষয়ের জন্য প্রযোজ্য। তারা পূর্বে প্রাপ্ত বিষয়ের উপর নির্ভরশীল।

আমরা কিভাবে ব্যবহার করতে হয় তার একটি উদাহরণ বিবেচনা করব .should() or .and() কমান্ড

cy.get('বোতাম'). উচিত('have.class', 'enabled')

সঙ্গে .and() যা এর একটি উপনাম .should() , আমরা একাধিক দাবী চেইন করতে পারেন. এই কমান্ড আরো পঠনযোগ্য.

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

উপরের উদাহরণের সাথে শৃঙ্খলিত .should() উল্লেখ করে এটির ক্লাস "সক্রিয়" থাকা উচিত, তারপরে .and() একই আদেশের বিরুদ্ধে কার্যকর করা হয়। যখন আমরা একাধিক কমান্ড জাহির করতে চাই তখন এটি খুবই সহায়ক।

সাইপ্রাসে স্পষ্ট বক্তব্য

দাবীতে সুস্পষ্ট বিষয় পাস করা সাইপ্রেস দাবীর সুস্পষ্ট প্রকারের অধীনে পড়ে। এখানে, আমরা ব্যবহার করব expect এবং assert দাবী হিসাবে আদেশ. যখন আমরা একই বিষয়ের জন্য একাধিক দাবী ব্যবহার করতে চাই তখন স্পষ্ট দাবী ব্যবহার করা হয়। এছাড়াও আমরা সুস্পষ্ট দাবী ব্যবহার করি সাইপ্রেস যখন আমরা কাস্টম করতে চাই দাবী করার আগে যুক্তি।

আমরা তাকান হবে স্পষ্ট সাইপ্রেস জন্য উদাহরণ কথন

expect(true).to.be.true // একটি বুলিয়ান এক্সপেক্ট(অবজেক্ট) এর জন্য চেক করে।to.equal(বস্তু)

নেতিবাচক সাইপ্রেস দাবী

ইতিবাচক দাবির মতো, সাইপ্রেসের মধ্যে নেতিবাচক দাবি রয়েছে। আমরা দাবী বিবৃতির উপসর্গে যোগ করা "না" কীওয়ার্ড ব্যবহার করব। আসুন নেতিবাচক দাবির একটি উদাহরণ দেখি

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

অ্যাপ্লিকেশন দ্বারা একটি নির্দিষ্ট পদক্ষেপ সঞ্চালিত হওয়ার পরে একটি নির্দিষ্ট শর্ত আর উপলব্ধ নেই তা যাচাই করার জন্য শুধুমাত্র ক্ষেত্রেই নেতিবাচক দাবির সুপারিশ করা হয়।

উদাহরণস্বরূপ, আসুন আমরা বিবেচনা করি যে একটি টগল চেক করা হয়েছে এবং যাচাই করা হয়েছে যে এটি সরানো হয়েছে

// প্রথমে আইটেমটি cy.contains('li.todo', 'Trite tests') হিসেবে চিহ্নিত করা হয়েছে .should('have.class', 'completed').find('.toggle').click() / / CSS ক্লাস মুছে ফেলা হয়েছে cy.contains('li.todo', 'Write tests').should('not.have.class', 'completed')

সাইপ্রেস কাস্টম জাহির বার্তা

সাইপ্রেসের সাথে, আমরা ম্যাচার্সের একটি লাইব্রেরি ব্যবহার করে দাবির জন্য অতিরিক্ত তথ্য বা কাস্টম বার্তা প্রদান করতে পারি। ম্যাচার্স ছোট ফাংশন নিয়ে গঠিত যা মানকে আলাদা করে এবং বিস্তারিত ত্রুটির বার্তা দেবে। চাই assertion লাইব্রেরি আমাদের কোডকে আরও পঠনযোগ্য দেখাতে সাহায্য করবে এবং পরীক্ষা ব্যর্থতা খুব দরকারী

const expect = require('chai').expect it('checks a number', () => { const value = 10 const expected = 3 expect(value).to.equal(expected) })
সাইপ্রেস কাস্টম ত্রুটি বার্তা

সাইপ্রেস দাবী সর্বোত্তম অভ্যাস

আমরা কমান্ডের একটি চেইন ব্যবহার করে একটি একক ব্লকে একাধিক দাবী লিখতে পারি। ইউনিট পরীক্ষার মত একক দাবী লেখার প্রয়োজন নেই। অনেকেই নিচের মত দাবী লেখেন। সেই পদ্ধতিতে লেখা ঠিক আছে, কিন্তু এটি কোড এবং রিডানডেন্সির লাইন বাড়ায়।

describe('my form', () => { before(() => { cy.visit('/users/new') cy.get('#first').type('ashok') }) it( 'has validation attribute', () => { cy.get('#first').should('have.attr', 'data-validation', 'required') // দাবি করা হচ্ছে যে #first-এর ক্ষেত্রে প্রয়োজন আছে কিনা } ) it('has active class', () => { cy.get('#first').should('have.class', 'active') // দাবি করা হচ্ছে যে #first-এর সক্রিয় ক্লাস আছে }) it( 'প্রথম নাম ফরম্যাট করেছে', () => { cy.get('#first').should('have.value', 'Ashok') // দাবি করা হচ্ছে যে #first-এর প্রথম অক্ষর বড় করা হয়েছে }) })

আপনি উপরে দেখতে পাচ্ছেন, একই নির্বাচক এবং দাবির ধরন পুনরাবৃত্তি হচ্ছে। পরিবর্তে, আমরা এই কমান্ডগুলিকে একটি একক দাবিতে চেইন করতে পারি যা একটি লিনিয়ার ফ্যাশনে সমস্ত চেক সম্পাদন করে।

বর্ণনা কর ('#প্রথম') .type('ashok') .should('have.attr', 'data-validation', 'required') .and('have.class', 'active') .and('have মান', 'অশোক') }) })

উপরে উল্লিখিত হিসাবে, আমরা একাধিক দাবী সহ একক নির্বাচককে চেইন করতে পারি! এটি সাইপ্রেসে দাবী লেখার প্রস্তাবিত সেরা অনুশীলনগুলির মধ্যে একটি।

সাইপ্রেসের পেজ অবজেক্ট মডেল সম্পর্কে বুঝতে, ক্লিক করুন এখানে.

.শ্বরিয়া লক্ষ্মী

আমি একজন টেস্টিং উত্সাহী এবং টেস্টিং ডোমেনে আমার প্রায় 2+ বছরের অভিজ্ঞতা আছে। আমি পরীক্ষার বিষয়ে উত্সাহী এবং আমার ক্ষেত্রে নতুন জিনিসগুলি অন্বেষণ করতে এবং সেগুলিকে আমার সমবয়সীদের সাথে ভাগ করতে ভালোবাসি। আমি আমার অবসর সময়ে সহজ কিন্তু কার্যকর উপায়ে ব্লগ লিখতে উপভোগ করি। একজন পরীক্ষক হিসাবে, আমি পরিপূর্ণতা পেতে পছন্দ করি, তাই আমি আমার পাঠকদের প্রযুক্তির নিখুঁত বোঝার জন্য চাই। আমি পরীক্ষার সাথে সম্পর্কিত নতুন প্রযুক্তিগুলির সাথে নিজেকে আপডেট রাখি এবং সেগুলি বুঝতে সময় ব্যয় করি। আমি শিক্ষার্থীদের পরীক্ষার ধারণা বুঝতে সাহায্য করতে পেরে আনন্দিত। আসুন LinkedIn এর মাধ্যমে সংযোগ করি - https://www.linkedin.com/in/aishwarya-lakshmi-n-46903217a

সাম্প্রতিক পোস্ট

KOH লুইস স্ট্রাকচার এবং বৈশিষ্ট্য সম্পর্কিত 29 তথ্যের লিঙ্ক: কেন এবং কীভাবে?

KOH লুইসের গঠন ও বৈশিষ্ট্যের 29 তথ্য: কেন এবং কীভাবে?

পটাসিয়াম হাইড্রোক্সাইড বা কস্টিক পটাশ একটি অজৈব অংশ। এর মোলার ভর 56.11 গ্রাম/মোল। আসুন KOH লুইস কাঠামো এবং সমস্ত তথ্য বিস্তারিতভাবে সংক্ষিপ্ত করি। KOH হল সাধারণ ক্ষারীয় ধাতব হাইড্রক্সাইড...

লিঙ্ক কি এখনো একটি সংযোগ? 5টি ঘটনা (কখন, কেন এবং উদাহরণ)

এখনও একটি সংযোগ আছে? 5টি ঘটনা (কখন, কেন এবং উদাহরণ)

"এখনও" শব্দটি মূলত একটি বাক্যে "এখন পর্যন্ত" বা "তবুও" অর্থ প্রদান করে। আসুন "যদিও" শব্দের ব্যবহার "সংযোগ" হিসাবে পরীক্ষা করি। "এখনও" শব্দটিকে "সমন্বয়কারী..." হিসাবে চিহ্নিত করা যেতে পারে