Dear Aslak:
Sorry to bother you over and over again. I did follow your instruction to
write the controller spec, but...the thing is not getting better.:-(
I'd like to post my code again, hopefully you would figure it out.
My Controller
class MyController
def index
pre = Array.new
render :partial=>'index', layout=>false, locals=>{:pre=>pre}
end
end
------------------------------------------------------------
My Controller spec
describe MyController do
it "should render the index partial" do
controller.expect_render(:partial=>'index', :layout=>false)
get 'index'
end
end
------------------------------------------------------------
By the way, I am using JRuby rather than ruby. Hence my command to run the
spec above is
jruby --command spec spec/controllers/my_controller_spec.rb --format specdoc
It always gave me an error:Mock 'expect_render_mock_proxy' expected :render
with
({:partial=>"index"}) once, but received it 0 times.
Is it because "expect_render" is not compatible with JRuby or I forgot to
mock something?
Thanks a lot.
Regards.
aslak hellesoy wrote:
>
> On 8/13/07, Shaker <[EMAIL PROTECTED]> wrote:
>>
>> Dear Aslak and David:
>> I have tried two possible ways to get expect_render work. However,
>> they
>> all failed. My combinations are:
>> my controller spec
>> describe MyController do
>> before do
>> #do nothing
>> end
>> it "should render the index partial" do
>> controller.expect_render(:partial=>'index') #1st way
>
> That's the way to go
>
>> MyController.expect_render(:partial=>'index') #2nd way
>> end
>> end
>>
>> The 1st way gave me an error: Mock 'expect_render_mock_proxy' expected
>> :render with ({:partial=>'index'}) once, but received it 0 times
>
> You've forgotten to run the action. RSpec doesn't magically guess what
> action is supposed to render your index partial.
>
> it "should render the index partial" do
> controller.expect_render(:partial=>'index')
> get 'index'
> end
>
>
>> The 2nd way gave me an error: undefined method 'expect_render'
>> Do I need to mock the controller or there are some mistakes I have made
>> in
>> my spec?
>>
>> Shaker wrote:
>> >
>> > Hi:
>> > I am a rspec beginner. I have scratched my head for the whole
>> > afternoon, trying to figure out a way of writing render expectation in
>> > controller spec. However, I failed. It kept telling me that the
>> > 'expect_render' was an undefined method. I have installed rspec 1.0.8
>> and
>> > rspec_on_rails as well. Below is the controller to be tested.
>> >
>> > Controller
>> > def index
>> > pre = Array.new
>> > render :partial=>'index', :layout=>false, :locals=>{:pre=>pre}
>> > end
>> >
>> > My controller spec
>> > before do
>> > @controller = MyController.new
>> > end
>> > it "should render the index partial" do
>> > @controller.expect_render(:partial=>'index', :layout=>false) #I
>> > don't know how to expect the :locals
>> > end
>> >
>> > As I mentioned, the spec failed , saying that "Undefined method
>> > 'expect_render' ". There might be some mistakes in my "before" block.
>> Do I
>> > need to mock the controller or something else? Anyway, do any one know
>> how
>> > to fix the problem? It will be even better if you guys could show me a
>> > piece of example code.
>> > Thanks!!
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/How-to-use-expect_render--tf4259590.html#a12123224
>> Sent from the rspec-users mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> rspec-users mailing list
>> [email protected]
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
> _______________________________________________
> rspec-users mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
>
>
--
View this message in context:
http://www.nabble.com/How-to-use-expect_render--tf4259590.html#a12136984
Sent from the rspec-users mailing list archive at Nabble.com.
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users