Given the following Rails 5 helper method, that relies on a the Devise helper signed_in?
:
module ApplicationHelper
def signed_in_or_out
signed_in? ? "A" : "B"
end
end
And the desire to test that the helper returns "A"
when signed_in?
returns true
, and to test that the helper returns "B"
when signed_in?
returns false:
require 'test_helper'
class ApplicationHelperTest < ActionView::TestCase
test 'returns A when signed in' do
assert_equal "A", signed_in_or_out
end
test 'returns B when not signed in' do
assert_equal "B", signed_in_or_out
end
end
The test runner raises an error: NoMethodError: undefined method 'signed_in?' for #<ApplicationHelperTest:...>
.
While we can stub the method within the test:
class ApplicationHelperTest < ActionView::TestCase
def signed_in?
true
end
# ..
How do I re-stub the signed_in?
method such that it returns false
for the second test?
Aucun commentaire:
Enregistrer un commentaire