टेस्ट डबल्स स्थापित करने के लिए आसान है
Slip = Struct.new(:id)
slip = Slip.new(:id => 1)
बनाम
slip = double('slip', :id => 1)
टेस्ट डबल्स अधिक सूचना वाले त्रुटि संदेश
require 'spec_helper'
class TooLongError < StandardError; end
class Boat
def moor(slip)
slip.moor!(self)
rescue TooLongError
false
end
end
describe Boat do
let(:boat) { subject }
context "when slip won't accept boat" do
it "can't be moored" do
Slip = Struct.new('Slip')
slip = Slip.new
boat.moor(slip).should be_false
end
end
end
Failure/Error: slip.moor!(self)
NoMethodError:
undefined method `moor!' for #<struct Struct::Slip >
बनाम
it "can't be moored" do
slip = double('slip')
boat.moor(slip).should be_false
end
Failure/Error: slip.moor!(self)
Double "slip" received unexpected message :moor! with (#<Boat:0x106b90c60>)
टेस्ट डबल्स है उत्पन्न परीक्षण के लिए बेहतर समर्थन
class Boat
def moor(slip)
slip.dont_care
slip.moor!(self)
rescue TooLongError
false
end
end
it "can't be moored" do
Slip = Struct.new('Slip')
slip = Slip.new
slip.should_receive(:moor!).and_raise(TooLongError)
boat.moor(slip).should be_false
end
Failure/Error: slip.dont_care
NoMethodError:
undefined method `dont_care' for #<struct Struct::Slip >
बनाम
it "can't be moored" do
slip = double('slip').as_null_object
slip.should_receive(:moor!).and_raise(TooLongError)
boat.moor(slip).should be_false
end
0 failures # passed!
कुछ उदाहरण है कि - मैं मुझे यकीन है कि परीक्षण युगल पसंद करने के कई और कारण हैं।
मुझे पता है कि आखिरी पोस्ट के बाद से इसमें कुछ सालों हैं, लेकिन क्या कोई मौका है कि आप उदाहरण को बदलने में कोई दिक्कत नहीं करेंगे? मुझे नहीं पता कि नौकाओं या स्लिप को नौकाओं के साथ क्या करना है, और यह मेरे लिए चीजों को समझने की कोशिश करना मुश्किल बना रहा है। यदि नहीं, तो वैसे भी धन्यवाद! – SirUncleCid