मैंने स्ट्रिंग क्लास को निम्नानुसार बढ़ाया है:

class String
  def last_character
    self[-1]
  end
end

मैंने string.rb फ़ाइल को lib में निम्नानुसार रखा है:

lib/core_extensions/string.rb

मैंने सेटअप का परीक्षण किया है और मैं रेल कंसोल में last_character विधि का उपयोग कर सकता हूं।

हालांकि, जब मैं विस्तारित स्ट्रिंग क्लास का उपयोग करने वाले वर्ग के लिए आरएसपीसी परीक्षण चलाता हूं तो यह मुझे एक त्रुटि देता है:

undefined method `last_character' for " ":String

क्या मुझे इन क्लास एक्सटेंशन फ़ाइलों को किसी भी तरह लोड करने के लिए आरएसपीसी को बताना है?

8
chell 25 मई 2017, 13:13

2 जवाब

सबसे बढ़िया उत्तर

एक तरीका यह है कि अपने कस्टम एक्सटेंशन को उत्सुकता से/स्पष्ट रूप से rails_helper.rb में लोड करें

Dir[Rails.root.join('lib/core_extensions/*.rb')].each { |f| require f }

वैकल्पिक दृष्टिकोण

उस फ़ोल्डर को eager_load_paths में जोड़ें और config.eager_load = true को config/environments/test.rb में सेट करें।

2
Sergio Tulentsev 6 जून 2017, 10:45

क्या आपके विनिर्देश में require "rails_helper" है?

क्या आपने स्प्रिंग को पुनरारंभ करने का प्रयास किया है?

1
Andy Waite 28 मई 2017, 15:42