On Oct 20, 2010, at 9:56 PM, oren wrote:

> I am specing a sinatra app.
> 
> it "should send non-valid user to /login" do
>  get '/'
>  last_response.headers['Location'].should == '/reports'
> end
> 
> this is working fine but I would like to know how to convert it to the
> new syntax or if there is a better way to do that.
> 
> before(:each) { get '/' }
> subject { last_response }
> 
> its(:status) {should == 302}
> require 'ap'
> its(:headers) {should include('/login')}

This is not "the new syntax." It is simply an alternate syntax that has been 
around for over a year and works well for a small subset of things you might 
want to specify like initial state:

describe Array do
  context "when first created" do
    subject { Array.new }
    its(:length) { should eq(0) }
  end
end

It is not in any way an all-purpose replacement for more specifying _behaviour_.

> another question:
> 
>   it "should send valid user to /reports" do
>        get '/', { 'HTTP_AUTHORIZATION' => 'Basic
> c2cvbGFuOmFBITExMQ==' }
>        last_response.headers['Location'].should == '/reports'
>      end
> 
> when i debug my method I see that request.env["HTTP_AUTHORIZATION"] is
> nil,
> so the header was not sent with it. how to mock it?

I don't have any personal experience w/ Sinatra yet (I know, I know, but there 
are only so many hours in a day), so I'll leave it to someone else to comment 
on how to approach the Sinatra questions.

Cheers,
David

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

Reply via email to