在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
  end
end

你可能感兴趣的:(测试,rspec,capybara)