无法让save_and_open_page在错误项目的rspec中工作

时间:2012-11-22 19:16:43

标签: ruby-on-rails capybara

所以我正在处理EdX第2部分的家庭作业1,我似乎无法使save_and_open_page工作。

这是rspec块:

    describe 'merge action' do

  before do
    @article_for_merging = Factory(:article)
    @article_for_merging.body = 'something we will merge'
  end

  it 'should merge articles' do
    get :merge, 'id' => @article.id, 'merge_with' =>  @article_for_merging.id
    response.should render_template('new')
    assigns(:article).should_not be_nil
    assigns(:article).should be_valid
    response.should contain(/body/)
    response.should contain(/extended content/)
    save_and_open_page
    debugger
    response.should have_field('article[body]',:with => @article.body + @article_for_merging.body)
    response.should have_selector('form#merge input#merge_with')
    response.should have_selector('form#merge input#merge')
  end
end

其他堆栈溢出帖子提示解决方案:

RSpec2 and Capybara

http://paikialog.wordpress.com/2012/02/11/webrat-no-such-file-to-load-action_controllerintegration/

save_and_open_page (capybara / launchy) stopped working in a project - error

我相信我已经尝试了所有,但我无法让它发挥作用。令人沮丧的是因为我可以查看原始HTML,但是对于大页面来说,找出我需要的html细节真是太痛苦了 - 在浏览器中查看chrome的“inspect element”等内容会更容易。

无论我尝试过哪种建议解决方案的组合,我都会回到这个错误的一些变化:

1)具有管理连接合并操作的Admin :: ContentController应合并文章  失败/错误:save_and_open_page  LoadError:  没有这样的文件加载 - action_controller / integration  #./spec/controllers/admin/content_controller_spec.rb:498:in块中的“块(4级)”

非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

在评论中使用Sam Joseph的黑客解决方案,我写了这个方法并将其放在spec / support / helpers.rb中:

def save_and_open_rspec_page
  File.open('/tmp/test.html','w'){|file| file.write(rendered)}; `open '/tmp/test.html'`
end

response.body对我不起作用,大概是因为我在查看规范中?

firefox对我也不起作用。由于我在Mac上,我使用open代替。

另外,我在我的观看规范render之前致电save_and_open_rspec_page