[rspec-users] Testing a FormBuilder

David Chelimsky dchelimsky at gmail.com
Mon Jun 22 16:02:52 EDT 2009


On Mon, Jun 22, 2009 at 2:57 PM, Peer Allan<peer at bipolarsoftware.ca> wrote:
> Thanks David, I completely missed that in your first response.

No problem. Let me know if it helps :)

> Peer
>
> On Mon, Jun 22, 2009 at 2:31 PM, David Chelimsky <dchelimsky at gmail.com>
> wrote:
>>
>> On Mon, Jun 22, 2009 at 2:07 PM, Peer Allan<peer at bipolarsoftware.ca>
>> wrote:
>> > Still having trouble, here is my code.
>> > Code:
>> > class MyFormBuilder < ActionView::Helpers::FormBuilder
>> >   def custom_select(field_name, *args)
>> >     field_name ||= :salutation
>> >     salutations =
>> > Lookup.for_type_and_column('Contact','salutation').map{|lookup|
>> > lookup.description}
>> >     select(field_name, salutations, :include_blank => true, :prompt =>
>> > "Please select salutation..")
>> >   end
>> > end
>> > Spec:
>> >   before(:each) do
>> >     @object = mock_model(Company)
>> >     @builder = MyFormBuilder.new(:company, @object, self, {}, nil)
>> >   end
>> >
>> >   it "should return collection of currency codes" do
>> >     @builder.custom_select(:salutation, {})
>> >   end
>> > No assertion in there, but it doesn't matter because I get this error:
>> > private method `select' called for
>> > #<ActiveSupport::TestCase::Subclass_1::Subclass_1:0x72b229c>
>> > I haven't had any success getting around this one, without stubbing
>> > beyond
>> > recognition.  Any ideas?
>>
>> This is what I was saying before - that you can't use self anymore
>> because the helper module is not included in the current context.
>> Instead, use the helper object:
>>
>> @builder = MyFormBuilder.new(:company, @object, helper, {}, nil)
>>
>> HTH,
>> David
>>
>> > peer
>> > On Mon, Jun 22, 2009 at 12:57 PM, David Chelimsky <dchelimsky at gmail.com>
>> > wrote:
>> >>
>> >> On Mon, Jun 22, 2009 at 12:53 PM, Peer Allan<peer at bipolarsoftware.ca>
>> >> wrote:
>> >> > Hello all,
>> >> > In a bit of a conundrum here.  I have a custom form builder I am
>> >> > trying
>> >> > to
>> >> > test and can't seem to get it to work.  I found this
>> >> > http://www.pathf.com/blogs/2007/12/rspec-and-rails/
>> >>
>> >> Things have changed a bit since Dec 07. The helper module is no longer
>> >> included directly in the example group, but are exposed through a
>> >> helper object instead.
>> >>
>> >> > which helps in that it
>> >> > points me to the HelperExampleGroup to get the @template methods I am
>> >> > going
>> >> > to need.  The problem is that we have our form builders in their own
>> >> > folder
>> >> > (app/form_builders) and hence their own spec folder
>> >> > (spec/form_builders).
>> >> >  How can I get the specs in that folder (spec/form_builders) to
>> >> > behave
>> >> > like
>> >> > they were helper tests so that I have access to the @template object?
>> >> > Thanks
>> >> > Peer
>> >>
>> >> describe "thing", :type => :helper do
>> >>  ...
>> >> end
>> >>
>> >> Cheers,
>> >> David
>> >> _______________________________________________
>> >> rspec-users mailing list
>> >> rspec-users at rubyforge.org
>> >> http://rubyforge.org/mailman/listinfo/rspec-users
>> >
>> >
>> > _______________________________________________
>> > rspec-users mailing list
>> > rspec-users at rubyforge.org
>> > http://rubyforge.org/mailman/listinfo/rspec-users
>> >
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list