2012-07-25 22 views
5

Tôi không thể tìm ra cách kiểm tra xem cookie đã được đặt khi thử nghiệm phương thức trợ giúp của tôi chưa.Làm cách nào để truy cập cookie trong thông số trợ giúp?

phương pháp helper Giả định:

def my_helper(k,v) 
    cookies[k] = v 
end 

Test:

it 'should set cookies' do 
    helper.my_helper("foo", "bar") 
    helper.cookies["foo"].should == "bar" #nil 
    helper.response.cookies["foo"].should == "bar" #nil 
end 

Bất cứ ai cũng biết làm thế nào để làm điều này?

+0

http://stackoverflow.com/questions/5475989/rspec-setting-cookies-in- a-helper-test ở đây, luôn làm bài tập ở nhà của bạn! –

+0

Tôi đã xem bài đăng đó, như OP đề cập đến, anh ấy vẫn không chắc chắn cách xóa cookie. –

+0

Theo các tài liệu rspec 'response.cookies [" foo "]' nên hoạt động nhưng tôi đang trên đường ray 3.2 và rspec 2.8 và nó không hoạt động đối với tôi. https://www.relishapp.com/rspec/rspec-rails/docs/controller-specs/cookies. Theo như tôi có thể nói có một cái gì đó kỳ lạ xảy ra giữa rspec, kiểm tra tích hợp đường ray, và rack mà làm cho khó khăn để tìm ra. – Dty

Trả lời

4

Thay một mock rspec đơn giản cho CookieJar hoạt động, nếu bạn sẵn sàng:

helper.stubs(:cookies => cookies = mock) 
cookies.expects(:[]=).with('foo', 'bar') 
helper.my_helper('foo', 'bar') 
0

yêu cầu cookie qua

helper.request.cookies[:awesome] = "something" 
+0

Điều này không hiệu quả đối với tôi. Hãy nhớ rằng, tôi đang cố gắng để _get_ cookie, không đặt nó. –

2

Tôi đang trên đường ray 3.2 và rspec 2.8. Mặc dù những gì các rspec docs nói sau đây làm việc cho tôi trong một yêu cầu spec (ví dụ: kiểm tra tích hợp).

it 'should set cookies' do 
    cookies['foo'] = 'bar' 
    visit "/" 
    cookies['foo'].should == 'bar' 
end 
+0

Yup, tôi chắc chắn đã kiểm tra các cookie trong thông số kỹ thuật yêu cầu chuẩn. –

+0

@MattBaker Phiên bản đường ray và rspec bạn đang sử dụng? – Dty

+0

@MattBaker cũng ở đây một bài viết về cách một người nào đó gỡ lỗi theo cách của họ thông qua việc sử dụng cookie trong rspec. Nó có thể giúp bạn tìm ra cách khắc phục toàn bộ vấn đề này. http://dobbse.net/thinair/2011/12/capybara-racktest-rspec-cookies-2of2.html – Dty

Các vấn đề liên quan