我正在尝试测试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 SELECT COUNT()FROM“page_votes” 前点数:0 [1m [36mPage Load(2.0ms)[0m [1mSELECT“pages”。 FROM“pages”INNER JOIN“page_translations”ON“page_translations”。“page_id”=“pages”。“id”WHERE“page_translations” 。“locale”='ru'和“pages”。“id”= $ 1 LIMIT 1 [0m [[“id”,1]] [1m [35mPage ::翻译负载(1.0ms)[0m SELECT“page_translations”。* FROM“page_translations”WHERE“page_translations”。“page_id”IN(1) [1m [36m(2.0ms)[0m [1mBEGIN [0m [1m [35m(0.0ms)[0m COMMIT 已完成401未经授权的38毫秒
无需进行身份验证即可进行投票。
有人知道该怎么办吗?
答案 0 :(得分:1)
我最终检查了输出,而不是模型计数
expect(page).to have_content("...")
如果有人知道,如何检查计数 - 非常欢迎您=)