On Jun 22, 2010, at 9:58 AM, Michael Schuerig wrote:

> On Tuesday 22 June 2010, David Chelimsky wrote:
>> On Jun 22, 2010, at 8:27 AM, Michael Schuerig wrote:
> 
>>> #_view (and #view in turn) creates just one ActionView::Base
>>> instance the first time it is called. That's as it is intended.
>>> The effect is, however, that only assigns up to that point are
>>> passed to that instance. Consequently, later assigns are ignored.
>> 
>> Stubs and assigns are unrelated, so even though this might be a bug,
>> I don't think it's the cause of what you're seeing.
> 
> It is. If I put all the assign(:x, value) before I first access #view, 
> everything works as expected. The problem I had is entirely unrelated to 
> stubs.

Well, to be fair, the initial problem you cited in this thread (even in the 
subject line) is "partial mocks", not "assigns."

That said, yes, this is a bug. I'll see if we can do something about that in 
Rails proper rather than rspec, which is just decorating the rails behavior.

Cheers,
David

> It's just that when I do things in this order
> 
> view.stub(:something).and_return('foo')
> assign(:bar, 10)
> 
> The assign doesn't have an effect. I might as well have
> 
> view.flash[:notice] = 'Something is rotten.'
> assign(:bar, 10)
> 
> and the effect would be the same. Assigns that come after the view is 
> first initialized are ignored.


_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to