मैं डालकर अलगाव में मेरी सिनात्रा सहायकों का परीक्षण अपने मॉड्यूल के भीतर सहायक तरीके। चूंकि मेरा सीनात्रा एप्लिकेशन सामान्य हैलो वर्ल्ड उदाहरण से थोड़ा बड़ा है, उदाहरण के लिए, मुझे इसे छोटे हिस्सों में विभाजित करने की आवश्यकता है। आम सहायकों के लिए एक मॉड्यूल मेरे उपयोग के मामले के अनुरूप है।
यदि आप त्वरित डेमो लिखते हैं, और आप helpers { ... }
ब्लॉक के भीतर अपने सहायक तरीकों को परिभाषित करते हैं, तो मुझे नहीं लगता कि यह परीक्षण बिल्कुल जरूरी है। उत्पादन में कोई भी sinatra ऐप, वैसे भी अधिक मॉड्यूलरिटी की आवश्यकता हो सकती है।
# in helpers.rb
module Helpers
def safe_json(string)
string.to_s.gsub(/[&><']/) { |special| {'&' => '\u0026', '>' => '\u003E', '<' => '\u003C', "'" => '\u0027'}[special] }
end
end
# in app.rb
helpers do
include Helpers
end
# in spec/helpers_spec.rb
class TestHelper
include Helpers
end
describe 'Sinatra helpers' do
let(:helpers) { TestHelper.new }
it "should escape json to inject it as a html attribute"
helpers.safe_json("&><'").should eql('\u0026\u003E\u003C\u0027')
end
end
दरअसल, मैं 'मार्ग' चला गया, अच्छी तरह से काम करता है: ओपी धन्यवाद जेड। – julien