小编Ada*_*m T的帖子

rspec rails mocking会话哈希

我试图模拟控制器的会话哈希,如下所示:

it "finds using the session[:company_id]" do
  session.should_receive(:[]).with(:company_id).and_return 100
  Company.should_receive(:find).with(100)
  get 'show'
end
Run Code Online (Sandbox Code Playgroud)

当我打电话给'show'时,它说:

received :[] with unexpected arguments  
expected: (:company_id)  
   got: ("flash")
Run Code Online (Sandbox Code Playgroud)

控制器代码如下所示:

def show
  company_id = session[:company_id]
  @company = Company.find params[company_id]
end
Run Code Online (Sandbox Code Playgroud)

我也只是尝试过设置

it "finds using the session[:company_id]" do
  session[:company_id]= 100
  Company.should_receive(:find).with(100)
  get 'show'
end
Run Code Online (Sandbox Code Playgroud)

但后来得到一个问题:

expected: (100)
got: (nil)
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

rspec ruby-on-rails rspec2

8
推荐指数
2
解决办法
9000
查看次数

form_remote_tag不会执行:method =>:put

有人能告诉我为什么这是执行POST方法而不是我在ajax请求中指定的PUT方法吗?

<% form_remote_tag(
    :url => contact_url(detail),
    :method => :put,
    :complete => "Element.toggle($('#{form_id}))",
    :success => visual_effect(:shake, "contact-#{detail.id}"),
    :update => "contact-#{detail.id}",
    :html => {:id => form_id, :style => "display:none"}) do %>
Run Code Online (Sandbox Code Playgroud)

生成的输出:

<form action="/contacts/1" id="tag-form-for-1" method="post" onsubmit="new Ajax.Updater('contact-1', '/contacts/1', {asynchronous:true, evalScripts:true, method:'put', onComplete:function(request){Element.toggle($('tag-form-for-1))}, onSuccess:function(request){new Effect.Shake(&quot;contact-1&quot;,{});}, parameters:Form.serialize(this)}); return false;" style="display:none">


<div style="margin:0;padding:0;display:inline">
<input name="authenticity_token" type="hidden" value="7807qAkHN3c1yyZlLoy9Z5pUByviR5az9vtuHHBbVv4=" />
</div>

<input id="tag_list" name="tag_list" size="40" type="text" value="Home Pittsburgh Ginger" />
<input id="form_id" name="form_id" type="hidden" value="tag-form-for-1" />

</form>
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

5
推荐指数
1
解决办法
567
查看次数

标签 统计

ruby-on-rails ×2

rspec ×1

rspec2 ×1