jeevan reddy
2012-Sep-09 06:00 UTC
[rspec-users] Stub a controller method containing arguments
controller code:
class BooksController < ApplicationController
def index
param1, param2 = "123", "456"
@test = method_1(param1, param2)
end
private
def method_1(param1, param2)
return "test"
end
end
controller tests
describe "GET index" do
it "get books" do
param1, param2 = "12334", "456233"
controller.stub!(:method_1).with(param1,param2).and_return("test")
get :index
assert_response :success
assigns(:test).should eq("test")
end
end
How to stub a controller private method which will take any arguments
--
Posted via http://www.ruby-forum.com/.
David Chelimsky
2012-Sep-09 11:31 UTC
[rspec-users] Stub a controller method containing arguments
On Sun, Sep 9, 2012 at 1:00 AM, jeevan reddy <lists at ruby-forum.com> wrote:> controller code: > > class BooksController < ApplicationController > def index > param1, param2 = "123", "456" > @test = method_1(param1, param2) > end > > private > def method_1(param1, param2) > return "test" > end > end > > controller tests > > describe "GET index" do > it "get books" do > param1, param2 = "12334", "456233" > controller.stub!(:method_1).with(param1,param2).and_return("test") > get :index > assert_response :success > assigns(:test).should eq("test") > end > end > > How to stub a controller private method which will take any argumentsIn your example above, the values of param1 and param2 are different in the rspec example and the controller, so I''m guessing you''re getting a failure. If you''re constraining a stub with specific args, they have to match. Curious - why do you care about the args in your real spec?