所以我正在处理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
其他堆栈溢出帖子提示解决方案:
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级)”
非常感谢任何帮助
答案 0 :(得分:2)
http://paikialog.wordpress.com/2012/02/11/webrat-no-such-file-to-load-action_controllerintegration/
答案 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
。