Quantcast
Viewing all articles
Browse latest Browse all 8

stub_chain is very useful when testing controller code (Spec::Mocks::Methods#stub_chain)

or any other chained method call type that you’d like to stub, example:

in your controller:

def new@user=current_site.users.newend

in your spec:

it"#new should assign a @user"dou=mock("User")controller.stub_chain(:current_site,:users,:new).and_return(u)assigns[:user].should==uend

whereas before you had to stub each chained method call separately:

it"#new should assign a @user"dou=mock("User")users=mock("Users collection",:new=>u)site=mock("Site",:users=>users)controller.stub!(:current_site).and_return(site)assigns[:user].should==uend

Please note that stub_chain was added to RSpec in version 1.2.6


Viewing all articles
Browse latest Browse all 8

Trending Articles