[英]Capybara+phantomjs = Completed 401 Unauthorized
我正在尝试测试PageVote的创建。 效果很好:用户点击图片,创建了PageVote
但是用capybara和phantomjs测试它不起作用=(
这是测试:
it "should change the PageVote after clicking on a vote link", js: true do
visit page_path( @page, locale: :ru )
expect( PageVote.count ).to eq(0)
find("#vote-5").click
expect( PageVote.count ).to eq(1)
end
控制器
def create
Rails.logger.debug "Count before: " + PageVote.count.to_s
@page = Page.find( params[ :page ] )
@vote = PageVote.new( ip_address: request.env['REMOTE_ADDR'], vote: params[ :vote ], page: @page )
@vote.save
Rails.logger.debug "Count after: " + PageVote.count.to_s
respond_to do |format|
format.html { redirect_to page_path( @page ) }
format.js
end
end
和测试日志是
Started POST "/ru/page_votes?page=1&vote=5" for 127.0.0.1 at 2014-11-25 22:51:04 +0300
[1m[35m (9.0ms)[0m SELECT COUNT(*) FROM "page_votes"
Processing by PageVotesController#create as JS
Parameters: {"page"=>"1", "vote"=>"5", "locale"=>"ru"}
[1m [36m(2.0ms)[0m [1mROLLBACK [0m [1m [35m(1.0ms)] [0m 从“ page_votes”选择SELECT COUNT( )”之前的计数:0 [1m [36mPage Load(2.0ms)[0m [1mSELECT“页面”。 FROM“ pages” INNER JOIN“ page_translations” ON“ page_translations”。“ page_id” =“ pages”。“ id” WHERE“ page_translations”。“ locale” ='ru'AND“ pages”。“ id” = $ 1 LIMIT 1 [ 0m [[“ id”,1]] [1m [35mPage ::翻译负载(1.0ms)[0m选择“ page_translations”。*从“ page_translations”到“ page_translations”。“ page_id” IN(1)[1m [36m (2.0ms)[0m [1mBEGIN [0m [1m [35m(0.0ms)[0m COMMIT Completed 401 Unauthorized in 38ms
进行投票无需身份验证。
有人知道该怎么办吗?
我最终检查输出,而不是模型数量
expect(page).to have_content("...")
如果有人知道,如何检查计数-非常欢迎=)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.