How to write a spec file for a helper

How to write a spec file for a following helper

module ArtistsHelper

def round_to(x)
(self * 10x).round.to_f / 10x
end

end

Regards

salil

On Mon, Apr 13, 2009 at 12:09 PM, Salil G. [email protected]
wrote:

How to write a spec file for a following helper

module ArtistsHelper

def round_to(x)
(self * 10x).round.to_f / 10x
end

end

in spec/helpers/artists_helper_spec.rb:

describe AristsHelper do
it “rounds to …” do
helper.round_to(xxx).should == yyy
end
end

Cheers,
David

On Mon, Apr 13, 2009 at 8:17 AM, David C. [email protected]
wrote:

in spec/helpers/artists_helper_spec.rb:

describe AristsHelper do
it “rounds to …” do
helper.round_to(xxx).should == yyy
end
end

That’s what I was going to say, but I’m not sure that it’s a Rails
helper…the calculation rounds self. So I’m a bit confused.

If this is a module that you’re using to extend the behavior of
Numeric classes, just mix it in somewhere and write examples for the
class that got the mixin.

Pat

On Apr 13, 11:26 am, Pat M. [email protected] wrote:

If this is a module that you’re using to extend the behavior of
Numeric classes, just mix it in somewhere and write examples for the
class that got the mixin.

I prefer to test modules in isolation by mixing them into a stub in
the spec, in order to make it explicit that we’re describing the
module itself (not some other class), and to avoid dependencies on
that other class. For example:

describe ArtistsHelper do
before do
@artist = 123.456
class << @artist
include ArtistsHelper
end
end

it "should round stuff" do
  @artist.round_to(1).should == 123.5
end

end

Granted, it looks a little awkward here since it looks like the module
is meant to be used with a Numeric, but in general I find this
approach to be pretty clean.


Brandt

On 14 Apr 2009, at 16:14, Brandt Kurowski wrote:

describe ArtistsHelper do
end

Granted, it looks a little awkward here since it looks like the module
is meant to be used with a Numeric

Isn’t it? That’s probably what I would infer if I read this code.

Is there any reason why you don’t do this?

 @artist = Object.new.extend(ArtistHelper)

Matt W.

http://blog.mattwynne.net