繁体   English   中英

Capybara + phantomjs =已完成401未经授权

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM