je teste mes aides sinatra dans l'isolement en mettant la méthodes d'aide dans son propre module. Depuis mon application sinatra est un peu plus grand que l'habituel bonjour monde par exemple, je dois le diviser en plus petites parties. Un module pour les assistants communs convient bien à mon cas d'utilisation. Si vous écrivez une démo rapide et que vous définissez vos méthodes d'assistance dans le bloc helpers { ... }
, je ne pense pas que le tester soit absolument nécessaire. Toute application Sinatra en production, peut nécessiter plus de modularité de toute façon.
# 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
En effet, je suis allé que 'route', fonctionne bien: oP Merci zed. – julien