I have an rspec spec:
require "spec_helper"
describe ApplicationHelper do
describe "#link_to_cart" do
it 'should be a link to the cart' do
helper.link_to_cart.should match /.*href="\/cart".*/
end
end
end
And the ApplicationHelper:
module ApplicationHelper
def link_to_cart
link_to "Cart", cart_path
end
end
This works when visiting the site, but the specs fail with a RuntimeError about Routing not being available:
RuntimeError:
In order to use #url_for, you must include routing helpers explicitly. For instance, `include Rails.application.routes.url_helpers
So, I included the Rails.application.routes.url in my spec, the spec_helper-file and even the ApplicationHelper itself, to no avail.
Edit: I am running the tests via spork, maybe that has to do with it and is causing the issue.
How must I include these route helpers when running with Spork?
You need to add include at module level of ApplicationHelper, because ApplicationHelper doesn't include the url helper by default. Code like this
module AppplicationHelper
include Rails.application.routes.url_helpers
# ...
def link_to_cart
link_to "Cart", cart_path
end
end
Then the code will work and your test will pass.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With