Request এবং Feature Specs এর ধারণা

RSpec এবং Rails (RSpec with Rails) - আরএসপেক (RSpec) - Computer Programming

340

RSpec এ Request Specs এবং Feature Specs দুটি গুরুত্বপূর্ণ টেস্টিং কৌশল যা ওয়েব অ্যাপ্লিকেশনের বিভিন্ন দিক পরীক্ষা করতে ব্যবহৃত হয়। এই স্পেসিফিকেশনগুলি API টেস্টিং এবং ইউজার ইন্টারফেস টেস্টিং করার জন্য ব্যবহৃত হয় এবং RSpec এর মাধ্যমে পুরো অ্যাপ্লিকেশনটি কার্যকরভাবে পরীক্ষা করা যায়। এগুলোর মূল উদ্দেশ্য হলো ব্যবহারকারীর দৃষ্টিকোণ থেকে অ্যাপ্লিকেশনের আচরণ পরীক্ষা করা।


১. Request Specs

Request Specs ওয়েব অ্যাপ্লিকেশনের HTTP রিকোয়েস্ট এবং Response যাচাই করার জন্য ব্যবহৃত হয়। এই স্পেসিফিকেশনগুলি সাধারণত API বা রুট পর্যায়ে পরীক্ষার জন্য ব্যবহৃত হয়। এতে অ্যাপ্লিকেশনের কন্ট্রোলার রিকোয়েস্ট এবং রেসপন্সের পরীক্ষা করা হয়, যেমন GET, POST, PUT, DELETE রিকোয়েস্টের মাধ্যমে ডেটা আপডেট বা প্রাপ্তি।

Request Specs এর উদ্দেশ্য:

  • HTTP রিকোয়েস্ট এবং রেসপন্স যাচাই করা।
  • কন্ট্রোলারের কাজ ও রেসপন্সের সঠিকতা নিশ্চিত করা।
  • রুট এবং কন্ট্রোলার ইন্টারঅ্যাকশন পরীক্ষা করা।

Sintax:

RSpec.describe "Example Request", type: :request do
  describe "GET /example" do
    it "সঠিক রেসপন্স কোড প্রদান করে" do
      get "/example"
      expect(response).to have_http_status(200)
    end
  end
end

উদাহরণ:

RSpec.describe "Users API", type: :request do
  describe "GET /users" do
    it "সকল ইউজারকে তালিকা প্রদান করবে" do
      get "/users"
      expect(response).to have_http_status(200)
      expect(response.body).to include("John")
    end
  end
end

এখানে:

  • get "/users": এটি GET রিকোয়েস্ট পাঠাচ্ছে "/users" রুটে।
  • expect(response).to have_http_status(200): এটি পরীক্ষার মাধ্যমে রেসপন্স কোড 200 (OK) হবে কিনা যাচাই করছে।
  • expect(response.body).to include("John"): এটি রেসপন্সের মধ্যে "John" নামটি অন্তর্ভুক্ত থাকবে কিনা যাচাই করছে।

২. Feature Specs

Feature Specs বা Integration Specs পুরো অ্যাপ্লিকেশনের ফিচারের ওপর পরীক্ষা চালানোর জন্য ব্যবহৃত হয়। এই স্পেসিফিকেশনগুলি ইউজারের পৃথক ক্রিয়া বা ফিচারগুলির মধ্যে ইন্টিগ্রেশন পরীক্ষা করে, অর্থাৎ কিভাবে বিভিন্ন উপাদান একত্রে কাজ করে তা যাচাই করা। সাধারণত Cucumber বা Capybara এর মত টুল ব্যবহার করে ইউজার ইন্টারফেসের উপর পরীক্ষা করা হয়, যেখানে রিয়েল টাইম ইন্টারঅ্যাকশন বা ব্রাউজার ইন্টারফেসের মধ্য দিয়ে একটি ফিচার পরীক্ষা করা হয়।

Feature Specs এর উদ্দেশ্য:

  • অ্যাপ্লিকেশনের ইউজার ইন্টারফেসের আচরণ পরীক্ষা করা।
  • একাধিক মডিউল বা উপাদান একত্রে কাজ করছে কিনা যাচাই করা।
  • ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন পরীক্ষার জন্য ওয়েব পেজ বা ইউজার ইন্টারফেস ব্যবহার করা।

Sintax:

RSpec.describe "Users", type: :feature do
  scenario "একটি নতুন ইউজার নিবন্ধন করতে চায়" do
    visit "/users/new"
    fill_in "Name", with: "John"
    fill_in "Email", with: "john@example.com"
    click_button "Sign Up"
    
    expect(page).to have_content("Welcome, John!")
  end
end

উদাহরণ:

RSpec.describe "Login Process", type: :feature do
  scenario "একটি সঠিক ইউজার নাম এবং পাসওয়ার্ড দিয়ে লগ ইন করা" do
    visit "/login"
    fill_in "Username", with: "john_doe"
    fill_in "Password", with: "password123"
    click_button "Log In"
    
    expect(page).to have_content("Welcome back, john_doe!")
  end
end

এখানে:

  • visit "/login": এটি পেজে নেভিগেট করে (জैसे ব্রাউজারে /login পেজে যাওয়া)।
  • fill_in "Username", with: "john_doe": এটি ইউজারনেম ইনপুট ফিল্ডে মান প্রদান করে।
  • click_button "Log In": এটি লগ ইন বাটনে ক্লিক করে।
  • expect(page).to have_content("Welcome back, john_doe!"): এটি পরীক্ষার মাধ্যমে যাচাই করছে যে, পেজে "Welcome back, john_doe!" বার্তা আছে কিনা।

Request Specs এবং Feature Specs এর মধ্যে পার্থক্য

বৈশিষ্ট্যRequest SpecsFeature Specs
পরীক্ষার স্তরAPI বা HTTP রিকোয়েস্ট পর্যায়ে পরীক্ষা করা হয়ইউজার ইন্টারফেস বা ফিচার পর্যায়ে পরীক্ষা করা হয়
ব্যবহারকন্ট্রোলার, রুট এবং HTTP রিকোয়েস্ট পরীক্ষার জন্যপুরো সিস্টেম বা ফিচার ইন্টিগ্রেশন পরীক্ষা করতে
ফোকাসHTTP রিকোয়েস্ট এবং রেসপন্সের সঠিকতাইউজারের কার্যক্রম, ইন্টারঅ্যাকশন এবং পেজের ফিচার
ইনফ্রাস্ট্রাকচারHTTP রিকোয়েস্টের মাধ্যমে অ্যাপ্লিকেশন লজিক পরীক্ষাUI এর মাধ্যমে বিভিন্ন ফিচারের ইন্টিগ্রেশন পরীক্ষা

সারাংশ

  • Request Specs ব্যবহার করে আপনি HTTP রিকোয়েস্ট এবং রেসপন্সের সাথে সম্পর্কিত টেস্ট লিখতে পারেন, যেমন API টেস্টিং বা কন্ট্রোলারের কার্যকারিতা যাচাই করা।
  • Feature Specs পুরো ফিচার বা ইউজারের ইন্টারঅ্যাকশন পরীক্ষা করার জন্য ব্যবহার করা হয়, যা অ্যাপ্লিকেশনের UI এবং ইন্টিগ্রেশন পরীক্ষা করে।

এই দুটি স্পেসিফিকেশন কৌশল ব্যবহার করে আপনার ওয়েব অ্যাপ্লিকেশন বা API-র আচরণ এবং কার্যকারিতা উন্নতভাবে যাচাই করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...