On Wed, Mar 12, 2008 at 3:54 PM, James B. Byrne <byrnejb at harte-lyne.ca>
wrote:> This is perhaps a naive question, but what is the recommended manner of
> testing a helper method in rspec?
You just describe the helper module and call the helper method like
you''d do in the views:
require File.dirname(__FILE__) + ''/../spec_helper''
describe ApplicationHelper do
describe "breadcrumbs" do
describe "when breadcrumbs empty" do
it "should show nothing" do
breadcrumbs.should == ""
end
end
end
end
I have created a simple string manipulation> function and I want to write some tests for it. It it were a script then
I
> would just add if __FILE__ == $0 and add the tests below that but I do not
> feel that this is the best way to handle a rails helper.
>
> The code (I said it was simple) :
>
> module ApplicationHelper
>
> # keycase strips leading spaces, squeezes out extra whitespace
> # between words, downshifts all and then capitalizes the first
> # character of each word.
> #
> # This method prepares descriptive strings that are used
> # as indices for lookups. To preserve common initialisms insert
> # periods between letters. Thus:
> # IBM => Ibm but I.B.M. => I.B.M.
> #
> # Do not use ! methods as they return nil under certain circumstances
> #
> def keycase(value)
> value = value.to_s.strip.squeeze("
").downcase.gsub(/\b\w/){$&.upcase}
> end
>
> end
Something like this:
require File.dirname(__FILE__) + ''/../spec_helper''
describe ApplicationHelper do
describe "keycase" do
describe "when no dots" do
before(:each) do
@value = "IBM"
end
it "should convert to lowercase" do
keycase(@value).should == "Ibm"
end
end
end
end
And so on.
//jarkko
--
Jarkko Laine
http://jlaine.net
http://odesign.fi