在view spec中用Capybara.string的结果替代rendered(Capybara版本0.4.12)
问题关键字:undefined method `has_selector?' for #<String:0x1034ecfb0>
版本:
Capybara(0.4.12)
RSpec-Rails(2.5.0)
补充:刚试了一下最新版本的RSpec-Rails2.6.0.rc6和Capybara1.0.0.beta1,已经把这个问题给解决了……
google一番后:
https://github.com/rspec/rspec-rails/issues/213
https://github.com/jnicklas/capybara/issues/139
https://github.com/rspec/rspec-rails/issues/302
最后:
在spec_helper.rb中加入如下代码:
if defined?(Capybara) && !defined?(Webrat) module ActionView::TestCase::Behavior alias old_rendered rendered def rendered Capybara.string old_rendered end endend1 楼 yuan 2011-05-10 刚fork了github上的rspec-rails准备自己改,结果一看代码,发现我打算改的地方跟本地gem中不一样,似乎已经考虑到了这个问题。于是从github上clone了最新的capybara和rspec-rails,手动build gem再install,运行测试,发现问题已经被解决了。