[rspec-users] RSpec 2 view specs: partial mocks
David Chelimsky
dchelimsky at gmail.com
Tue Jun 22 11:16:21 EDT 2010
On Jun 22, 2010, at 10:06 AM, David Chelimsky wrote:
>
> 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.
https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4931
>
> 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.
>
>
More information about the rspec-users
mailing list