আরএসপেক এবং শসাবার মধ্যে পার্থক্য কী? [বন্ধ]


114

আমার কাছে 6 মাসের রেলের বিকাশের অভিজ্ঞতা রয়েছে। আমি একটি ওয়েব অ্যাপ্লিকেশন তৈরি করেছি যা এখন প্রমাণীকরণ এবং অনুমোদন এবং postgresql ডিবি ব্যবহার করে।

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

আমি আরএসপেক এবং শসাবার সম্পর্কে শুনেছি তবে তাদের দ্বারা পুরোপুরি বিভ্রান্ত।

আমি জানতে চাই যে আরএসপেক এবং শসাবারের মধ্যে পার্থক্য কী এবং সেগুলির জন্য কী ব্যবহৃত হয়।

কোনও পরীক্ষার কাঠামোটি সত্যই প্রয়োজন কিনা তা কোনও প্রাথমিকের দৃষ্টিকোণ থেকে (যারা একমাত্র বিকাশকারীও) তিনি জানেন কিনা তাও কার্যকর হবে।


6
আপনি যদি আরও বেশি গুলান, Minitest এছাড়াও একটি বিকল্প হতে পারে
লুকাস Clemente

5
ক্যাপিবারা আসলেই এমন একটি ড্রাইভার যা কোনও নিজস্ব কাঠামো নয় বরং পরীক্ষার ফ্রেমওয়ার্কে ব্যবহার করা যেতে পারে। ওয়াটার-ওয়েবড্রাইভার এবং সেলেনিয়াম দুটি জিনিস যা একই ধরণের কাজ করে তবে সত্যিকারের ব্রাউজারটি চালিত করে এবং ক্যাপিবারা ড্রাইভিং র্যাকের তুলনায় অনেক ধীর গতিতে থাকে: পরীক্ষা
ডিভিজি

37
এটা কিভাবে গঠনমূলক নয় ???
জেসন সোয়েট

19
দুর্দান্ত প্রশ্ন এবং দুর্দান্ত উত্তর। এটি আমার যা প্রয়োজন তা ঠিক। প্রশ্নটি গঠনহীন হিসাবে বন্ধ করে আমি হতবাক হয়েছি। কে বিতর্ক করতে চাইলে কে পাত্তা দেয়? সম্প্রদায়কে ভোট দেওয়ার জন্য এটিই।
dpurrington

14
প্রশ্নটি বন্ধ করার ভিত্তিটি বিশিষ্ট বলে আমি মনে করি ভোট পুনরায় খোলা। এটি অবশ্যই "তথ্য, তথ্যসূত্র, বা দক্ষতার দ্বারা সমর্থিত" ব্যবহার করে (এবং হয়েছে!) উত্তর দেওয়া যেতে পারে এবং স্ট্যাকওভারফ্লো যে কোনও প্রশ্ন সম্ভবত "বিতর্ক, যুক্তি, পোলিং" (যা আমরা সবাই জানি এবং দেখেছি) জিজ্ঞাসা করব। "পোলিং" হিসাবে? এসও-র হু ওপেনডেন্ডি প্রশ্ন এবং উত্তরগুলির উর্ধ্বকরণ এবং ডাউনভোটিং সম্পর্কে। এটি মূলত একটি বড় পোল। এটি বন্ধ ছিল নির্ঘাত। এটি বিষয় সম্পর্কে প্রশ্নোত্তর এবং উত্তরের পক্ষে একটি ভাল সহায়ক ।
অ্যাডাম ক্যামেরন

উত্তর:


323

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

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

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

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

কেবল দুজনের মধ্যে মূল পার্থক্যটি দেখানোর জন্য:

শসা:

#articles.feature
Given an article exists called "Testing Demonstration"
When I visit the list of articles
Then I should see an article called "Testing Demonstration"

#article_steps.rb
Given /^an article exists called "(.+)"$/ do |title|
  FactoryGirl.create(:article, title: title)
end 
When /^I visit the list of articles$/ do
  visit articles_path
end
Then /^I should see an article called "(.+)"$/ do |title|
  page.should have_content title
end

Rspec

describe "Articles" do
  let(:article) { FactoryGirl.create(:article) }
  context "Index Page" do
    before { visit articles_path }
    it { page.should have_content article.title }
  end
end

আরএসপেকের সাথে যেতে এই ব্লগ সিরিজটি দুর্দান্ত।


24
এটি একটি দুর্দান্ত উত্তর। আপনার সময় এবং পরামর্শের জন্য আপনাকে অনেক ধন্যবাদ। Ive পড়ে রেলগুলিতে প্রচুর বই রয়েছে তবে এখনও অবধি এমন কোনও সন্ধান পাওয়া যায় নি যা এই ধরণের পার্থক্য তৈরি করে এবং ব্যাখ্যা করে যে কোনটি। আবারও ধন্যবাদ
দস্যু কিং

2
এই উত্তরটির প্রয়োজনের জন্য আমি কমই সুপারিশ করতে পারিনি। বিস্তারিত জানার জন্য আপনাকে ধন্যবাদ!
ইকন

3
এটি প্রকৃতপক্ষে স্ট্যাকওভারফ্লো সম্পর্কে সর্বাধিক বিস্তৃত এবং সহজে উত্তরগুলির মধ্যে একটি (একটি দুর্দান্ত উদাহরণ দিয়ে সম্পূর্ণ!)
শেহেরিয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.