[rspec-users] assigns variable maintaining state across request?

Ivor Paul ivorpaul at gmail.com
Wed Dec 10 05:08:33 EST 2008


Hi

I found that if I set assigns[:variables] in a spec, the value is maintained
in subsequent specs.

Example

rails helper method:

  def return_at_variable
    @variable
  end

Specs:

#this passes obviously
  it 'should return true if assigns[:variable] is true' do
    assigns[:variable] = true
    helper.return_at_variable.should be_true
  end

#this does not pass
  it 'should return nil becasue assigns[:variable] is not set' do
    helper.return_at_variable.should be_nil
  end

'' FAILED
expected nil? to return true, got false

In this case both tests pass:

  it 'should return true if assigns[:variable] is true' do
    assigns[:variable] = true
    helper.return_at_variable.should be_true
  end

  it 'should return nil becasue assigns[:variable] is not set' do
    helper.return_at_variable.should be_true
  end

Getting around this is simple enough - by just clearing/declaring the
assigs[:variables] where ever I need to, but I am wondering if this is
normal behaviour?

Regards
Ivor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20081210/66b0ffa3/attachment.html>


More information about the rspec-users mailing list