2

所以我正在处理 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 和水豚

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

save_and_open_page (capybara / launchy) 在项目中停止工作 - 错误

我相信我已经尝试了所有方法,但我无法让它发挥作用。这很令人沮丧,因为我可以查看原始 HTML,但是对于大页面来说,找出我需要的 html 细节真是太痛苦了——在浏览器中使用 chrome 的“检查元素”之类的东西要容易得多。

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

 ( 4 级)在 '

非常感谢任何帮助

4

2 回答 2

2

啊,我想这可能已经解决了:

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

于 2012-11-22T19:33:55.947 回答
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给我的视图规范。

于 2013-09-05T17:17:12.460 回答