在Firefox中,如果我尝试提交没有标题的帖子,我会收到: 1错误禁止保存此帖子。
但是当我进行测试时。这是一个不同的故事。
我的帖子模型有validates_presence_of :title
。我的测试看起来像:
require 'spec_helper'
describe 'Users' do
it 'registered users should not be able to post without a title', :js => true do
user = Factory(:user)
visit new_post_path
current_path.should eq(new_post_path)
fill_in 'post[markdown_description]', :with => 'Bar'
click_on 'Submit your post'
page.should have_content('error')
end
end
顺便说一下,我正在使用Selenium(:js => true
),因为我的提交按钮实际上是一些JS的锚链接。基本上,当单击链接时,JS会触发要提交的表单。
Rspec返回:
Running: spec/requests/users_spec.rb
F
Failures:
1) Users registered users should be able to post
Failure/Error: page.should have_content('error')
expected there to be content "error" in ""
# ./spec/requests/users_spec.rb:13:in `block (2 levels) in <top (required)>'
Finished in 7.9 seconds
1 example, 1 failure
Failed examples:
rspec ./spec/requests/users_spec.rb:4 # Users registered users should be able to post
答案 0 :(得分:0)
如果您有before_filters
,请求可能无法进入控制器操作。检查日志以确保发布了正确的参数,并且操作未重定向。
另一种选择是将其包含在您的规范中:
click_on 'Submit your post'
save_and_open_page
在浏览器中打开当前页面,以便您可以看到实际呈现的内容。