rspec 加入测试 js 后,使用 FactoryGirl 创建的对象在测试数据库中不存在,请问应该如何解决? 测试时从弹出的浏览器中发现登陆就失败了
相关测试代码如下:
describe "error message", :js => true do
post_err_msg = "发布失败"
let(:lithium) { FactoryGirl.create(:lithium) }
before do
sign_in lithium
post_btn.click
end
it { should have_content(post_err_msg) }
end
问题解决了,加入了一个 database_cleaner 的 gem 并修改了 spec/spec_helper.rb
除了加上js:true
不用修改测试代码的其他部分
参考
http://stackoverflow.com/questions/8178120/capybara-with-js-true-causes-test-to-fail
http://blog.csdn.net/heliang7/article/details/7762165
发现 selenium 测试需要打开一个浏览器太慢了,打算换 web-kit 试试。