相关疑难解决方法(0)

rails中的view.stub部分rspec给出'undefined method view_context'

使用Rails 3.2.11

我有几个视图rspec测试,我需要存根'current_user'调用.

我在常规视图测试中成功使用了这个:

require 'spec_helper'

describe "projects/_my_project.html.erb" do

  before(:each) do
    @client = FactoryGirl.create(:user)
    view.stub(:current_user) { @client }  
  end

  describe "new proposals notice" do
    it "does not display new_propsals if in state posted and clicked after last submitted"  do
      @my_project = FactoryGirl.build(:project, status: "posted", last_proposals_click: "2012-02-02 14:01:00", last_proposal_submitted: "2012-02-02 14:00:00")
      render :partial => "/projects/my_project", :locals => { :my_project => @my_project }
      rendered.should_not have_content "You received new proposals"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

Current_user由controllers/helpers.rb中的Devise定义(在gem中).我在视图或控制器中使用它作为current_user(作为方法,而不是实例).

问题似乎是在view.stub中的视图在这里为零,是否有另一个对象用于部分?我根本不明白为什么这种方法在常规视图中是完美的而不是局部的.

我明白了:

Failure/Error: view.stub(:current_user) { @client }
 NoMethodError:
   undefined …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails

4
推荐指数
1
解决办法
1509
查看次数

我对这个rspec助手测试做错了什么?

我想要做的就是规定视图的一行帮助方法应该如何表现,但我不确定如果我在Rails中工作,我应该创建什么样的模拟对象(如果有的话).

这是events_helper.rb的代码:

module EventsHelper

  def filter_check_button_path
    params[:filter].blank? ? '/images/buttons/bt_search_for_events.gif' : '/images/buttons/bt_refine_this_search.gif'
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我的规范代码,在events_helper_spec.rb中:

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

describe EventsHelper do

  #Delete this example and add some real ones or delete this file
  it "should be included in the object returned by #helper" do
    included_modules = (class << helper; self; end).send :included_modules
    included_modules.should include(EventsHelper)
  end

  it "should return the 'refine image search' button if a search has been run" do

  # mock up params hash
    params = {}
    params[:filter] = …
Run Code Online (Sandbox Code Playgroud)

testing rspec helpers

3
推荐指数
1
解决办法
7262
查看次数

标签 统计

rspec ×2

helpers ×1

ruby-on-rails ×1

testing ×1