ruby - Rspec stub why use at all -
why use stub
given should testing real classes anyways?
i know there cases don't want test other classes , not go through other associated class methods still think it's better use real methods.
i can see benefit when want skip 1 method's other associated tasks , return end result used in tests
are there other benefits though should considering?
(in addition above think stub
risky aswell since code can change evolves , may generate different output generating in tests)
it depends on test performing. unit tests, testing single class, stubs beneficial.
as example, assume testing class sends email when other object finishes did_it!
operation:
describe emailer context ".send_email" "sends email if object 'did_it!'" obj = obj.new emailer.send_email(obj).should == true # email sends end end end
in case, if obj.did_it!
super expensive operation, or fail intermittently, test have issues.
however, in test care emailer.send_email
runs correctly when obj.did_it!
returns true
--we not care obj.did_it!
method works, because not testing.
so, use stubs say, "assuming obj.did_it!
succeeds, emailer.send_email
send email?":
describe emailer context ".send_email" "sends email if object 'did_it!'" obj = stub(:did_it! => true) emailer.send_email(obj).should == true # email sends end end end
Comments
Post a Comment