首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rspec-rails:测试呈现部分的控制器操作

rspec-rails:测试呈现部分的控制器操作
EN

Stack Overflow用户
提问于 2013-09-28 16:23:55
回答 1查看 737关注 0票数 2

我有一个UsersController,它有indexnew操作。我使用haml,索引haml文件包含以下代码:

代码语言:javascript
复制
= link_to 'Add User', new_user_path, { :remote => true, 'data-toggle' => 'modal', 
  'data-target' => '#modal-window', 'class' => 'btn btn-primary pull-right' }

因此,当用户单击“Add user”时,_new.html.haml部分将作为一个模式呈现给用户。效果很好。下面是控制器中的新操作:

代码语言:javascript
复制
def new
  @user = User.new

  respond_to do |format|
    format.html
    format.js
  end
end

现在,在我的控制器规范中,我试图做以下工作:

代码语言:javascript
复制
describe "new action" do
  before do
    get 'new'
  end

  # specs for 'new' action go here
end

但是,这会导致错误。

代码语言:javascript
复制
Failure/Error: get 'new'
 ActionView::MissingTemplate:
   Missing template users/new, application/new with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee, :haml]}. Searched in:
     * "#<RSpec::Rails::ViewRendering::EmptyTemplatePathSetDecorator:0x007faa44b03218>"

大概是因为它找不到new.html.haml,当然因为文件是一个名为_new.html.haml的部分文件而不存在。get处理部分的正确语法是什么?如果没有,我如何测试new操作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-28 17:23:37

好吧,我在新动作中做了些改变,让它发挥作用:

代码语言:javascript
复制
respond_to do |format|
  format.html { render :partial => 'new' }
  format.js
end

当应用程序运行rails时,rails会显示出部分内容,但我想rspec应该是明确的。如果有更好的方法做这件事,我会很高兴听到他们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19069040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档