Rails如何测试方法使用Rspec接收块参数

时间:2014-02-26 19:58:50

标签: ruby-on-rails ruby rspec block

让我说我在应用程序控制器中有这个:

class ApplicationController < ActionController::Base

    def example(&block)
        ...code here
    end
end

这是另一个控制器:

class OtherController < ApplicationController

    def index
        example { some_text("irrelevant_text") }
    end

    private

    def some_text var
        "#{var}_string"
    end
end

我想在使用 irrelevant_text_string 参数调用索引操作example方法时进行测试。

类似的东西:

describe 'index' do
    it 'should call example' do
        controller.should_receive(:example).with("irrelevant_text_string")
        get :index
    end
end

但这不起作用。我一直在

received :example with unexpected arguments
expected: ("irrelevant_text_string")
          got: (no args)

为什么说没有args?
任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

因为你传递了一个块,而不是一个参数。