2011-11-22 16 views
14

मैं निम्नलिखित रूबी कोआन पर काम कर रहा हूँ:।रूबी कोअन्स: इस वापसी मूल्य में उद्धरण कहां हैं?

<"<Dog named 'Fido'>"> expected but was <<Dog named 'Fido'>>. 

समस्या:

class Dog7 
    attr_reader :name 

    def initialize(initial_name) 
    @name = initial_name 
    end 

    def get_self 
    self 
    end 

    def to_s 
    __ 
    end 

    def inspect 
    "<Dog named '#{name}'>" 
    end 
end 

def test_inside_a_method_self_refers_to_the_containing_object 
    fido = Dog7.new("Fido") 

    fidos_self = fido.get_self 
    assert_equal "<Dog named 'Fido'>", fidos_self 
end 

def test_to_s_provides_a_string_version_of_the_object 
    fido = Dog7.new("Fido") 
    assert_equal __, fido.to_s 
end 

पहले assert_equal की पहली छमाही क्या मैं भरने के लिए कोशिश कर रहा हूँ है यह कोड त्रुटि देता है है, मैं वापसी मूल्य से मेल खाने के तरीके पर अटक गया हूँ। यह मुझे एक स्ट्रिंग शाब्दिक वापसी मूल्य की तरह दिखता है, लेकिन मुझे नहीं पता कि उद्धरण चिह्नों, और/या बैकस्लाश का उपयोग किये बिना इसे कैसे व्यक्त किया जाए। मैं कोशिश नहीं करता कुछ भी काम करता है।

सहायता?

+1

विधि '__' क्या है? –

+0

यह एक भरने-इन-द-ब्लैंक ट्यूटोरियल है। विचार लिखित रूप में परीक्षण को विफल करने के लिए है, फिर इसे पास करने के लिए आवश्यक कोड भरें। मैंने पहले भाषण के "<कुत्ते नाम 'Fido'>" हिस्से को जोड़ा। – nrflaw

उत्तर

1

निम्नलिखित कार्यों के लिए test_inside_a_method_self_refers_to_the_containing_object बदलना:

def test_inside_a_method_self_refers_to_the_containing_object 
    fido = Dog7.new("Fido") 

    fidos_self = fido.get_self 
    assert_equal "<Dog named 'Fido'>", fidos_self.inspect # .inspect added. 
end 


ठीक है, वहाँ अधिक अंतराल को भरने के लिए गए थे? मेरे पास एक जवाब है, लेकिन ऐसा लगता है कि आप पहले से ही एक अंतर गलत तरीके से भर चुके हैं।

+0

धन्यवाद! यह काम करता है। यद्यपि इनके नीचे एक अलग परीक्षण है: 'def test_inspect_provides_a_more_complete_string_version fido = dog7.new ("Fido") assert_equal "<कुत्ते का नाम' Fido '>", fido.inspect end' – nrflaw

24

थोड़ी देर के लिए इसे देखने के बाद, मुझे पता चला कि वे सबक के साथ कहां जा रहे थे। "Assert_equal fido, fidos_self" के लिए पहले जोर को बदलकर परीक्षण पास किया गया। मुझे इंस्पेक्ट विधि, सैन्स कोट्स के समान आउटपुट देने में त्रुटि से फेंक दिया गया था। मुझे इसके माध्यम से काम करने में मदद करने के लिए धन्यवाद।

+0

सहायता के लिए धन्यवाद। यह कून सबसे अच्छा नहीं है। सवाल यह है कि बिंदु क्या है? मैं आपके सुझाव से बेहतर कुछ भी नहीं सोच सकता था (जो मेरे साथ नहीं हुआ था।) – codenoob

संबंधित मुद्दे