এটি মূলত স্বাদের বিষয়, এবং বেশিরভাগ পরীক্ষার সরঞ্জামগুলি তাদের লবণের জন্য উভয়ই সমর্থন করে। আমার ব্যক্তিগত পছন্দটি টেস্টের ওপরে আরএসপেকের জন্য: ইউনিট কারণ ক) পরীক্ষাগুলির আউটপুট এবং বিন্যাসটি পরীক্ষার অধীন অবজেক্টটি কী করণীয় (কোডটি কী তার বিপরীতে) এবং কেন) 'এক্স উচিত ওয়াই' বলে 'এক্স প্রিকিকেট ওয়াই'র প্রতিপাদন করা' তার চেয়ে আমার কাছে আরও বোঝা যায়।
উপরের পয়েন্টগুলির জন্য আপনাকে কিছু প্রসঙ্গ দেওয়ার জন্য, এখানে দুটি কার্যকরী সমতুল্য ইউনিট পরীক্ষার আউটপুট / উত্স কোডের তুলনা এখানে রয়েছে, একটি আরএসপেক ব্যবহার করে রচিত এবং অন্যটি টেস্ট :: ইউনিট ব্যবহার করে।
পরীক্ষার অধীনে কোড
class DeadError < StandardError; end
class Dog
def bark
raise DeadError.new "Can't bark when dead" if @dead
"woof"
end
def die
@dead = true
end
end
টেস্ট :: ইউনিট
require 'test/unit'
require 'dog'
class DogTest < Test::Unit::TestCase
def setup
@dog = Dog.new
end
def test_barks
assert_equal "woof", @dog.bark
end
def test_doesnt_bark_when_dead
@dog.die
assert_raises DeadError do
@dog.bark
end
end
end
RSpec
require 'rspec'
require 'dog'
describe Dog do
before(:all) do
@dog = Dog.new
end
context "when alive" do
it "barks" do
@dog.bark.should == "woof"
end
end
context "when dead" do
before do
@dog.die
end
it "raises an error when asked to bark" do
lambda { @dog.bark }.should raise_error(DeadError)
end
end
end
পরীক্ষা :: ইউনিট আউটপুট (যতটা সম্ভব আমি এটি তৈরি করতে পারি)
Ξ code/examples → ruby dog_test.rb --verbose
Loaded suite dog_test
Started
test_barks(DogTest): .
test_doesnt_bark_when_dead(DogTest): .
Finished in 0.004937 seconds.
আরএসপেক আউটপুট (ডকুমেন্টেশন ফর্ম্যাটার)
Ξ code/examples → rspec -fd dog_spec.rb
Dog
when alive
barks
when dead
raises an error when asked to bark
Finished in 0.00224 seconds
2 examples, 0 failures
2 tests, 2 assertions, 0 failures, 0 errors
পিএস আমি মনে করি বারিন (পূর্ববর্তী প্রতিক্রিয়াকারী) শসাবার (যা আরএসপেক প্রকল্পের মধ্য দিয়ে বেড়েছে তবে স্বতন্ত্র) এবং আরএসপেকের ভূমিকাগুলি বিভক্ত করছে। শসা একটি বিডিডি শৈলীতে স্বয়ংক্রিয় গ্রহণযোগ্যতা পরীক্ষার একটি সরঞ্জাম, যেখানে আরএসপেক একটি পরীক্ষার জন্য কোড লাইব্রেরি যা ইউনিট, সংহতকরণ এবং কার্যকরী স্তরে ব্যবহৃত হতে পারে এবং এটি ব্যবহৃত হয়। অতএব আরএসপেক ব্যবহার ইউনিট টেস্টিংকে বাদ দেয় না - এটি কেবলমাত্র আপনি আপনার ইউনিট পরীক্ষাকে 'চশমা' বলছেন।