How to write a spec file for a helper


#1

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


#2

On Mon, Apr 13, 2009 at 12:09 PM, Salil G. removed_email_address@domain.invalid
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


#3

On Mon, Apr 13, 2009 at 8:17 AM, David C. removed_email_address@domain.invalid
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


#4

On Apr 13, 11:26 am, Pat M. removed_email_address@domain.invalid 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


#5

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://beta.songkick.com
http://blog.mattwynne.net