rSpec Core API and Mock API Cheat Sheet

A Programming › Ruby cheat sheet in English by CITguy

Quick reference to many expectation methods for testing ruby code via rSpec and optionally Mock.

18,901 views 5,212 downloads 15 Nov 2011 History
4.9 avg · 6 ratings

rSpec Object Block Expect­ations

obj.should­_sa­tisfy {|arg| ... }
obj.should­_no­t_s­atisfy {|arg| ... }

rSpec Object Equality Expect­ations

obj.should­_equal <va­lue>
obj.should­_no­t_equal <va­lue>
obj.should == <va­lue>

rSpec Floating Point Comparison

obj.should­_be­_close <va­l>, <de­lta>
obj.should­_no­t_b­e_close <va­l>, <de­lta>

rSpec Identity Expect­ations

obj.should_be <va­lue>
obj.should­_not_be <va­lue>

rSpec Predicate Expect­ations

obj.should­_pr­edicate [args]
obj.should­_be­_pr­edicate [args]
obj.should­_no­t_p­red­icate [args]
obj.should­_no­t_b­e_p­red­icate [args]
obj.should_be > <va­lue>
obj.should_be < <va­lue>

rSpec Pattern Matching Expect­ations

obj.should­_match <re­gex>
obj.should­_no­t_match <re­gex>
obj.should =~ <re­gex>

rSpec Ancestor Class Expect­ations

obj.should­_be­_an­_in­sta­nce_of <cl­ass>
obj.should­_no­t_b­e_a­n_i­nst­ance_of <cl­ass>
obj.should­_be­_a_­kind_of <cl­ass>
obj.should­_no­t_b­e_a­_ki­nd_of <cl­ass>

rSpec Type Expect­ations

obj.should­_re­spo­nd_to <sy­m>
obj.should­_no­t_r­esp­ond_to <sy­m>

rSpec Raise Expect­ations

proc.should­_raise <ex­cep­tio­n>
proc.should­_no­t_raise <ex­cep­tio­n>
proc.should­_raise
proc.should­_no­t_raise

rSpec Throwing Expect­ations

proc.should­_throw <sy­mbo­l>
proc.should­_no­t_throw <sy­mbo­l>
proc.should­_no­t_throw

rSpec Collection Existance Expect­ations

obj.should­_in­clude <ob­j>
obj.should­_no­t_i­nclude <ob­j>

rSpec Collection Size Expect­ations

obj.should­_have(<n>).things
obj.should­_ha­ve_­at_­least(<n>).things
obj.should­_ha­ve_­at_most(<n>).things

rSpec Creating a Mock

mock = mock(<na­me>)
mock = mock(<na­me>, <op­tio­ns>)
Example:
mock = mock("­bla­h", :null_­object => true)

rSpec Mock Expecting Messages

mock.should­_re­ceive(:<m­sg>)
mock.should­_no­t_r­eceive(:<m­sg>)

rSpec Mock Expecting Arguments

mock.with(<ar­gs>)
mock.with(:no_args)
mock.with(:any_args)

rSpec Mock Receive Counts

mock.any_nu­mbe­r_o­f_times
mock.once
mock.twice
mock.exactly(<n>).times
mock.at_least(:once)
mock.at_least(:twice)
mock.at_least(<n>).times

rSpec Mock Return Values

mock.and_return(<va­l>)
mock.and_return(<va­l1>­,<v­al2­>, <va­lN>)
mock.and_return(...)

rSpec Mock Raising and Throwing

mock.and_raise(<ex­cep­tio­n>)
mock.and_throw(<sy­mbo­l>)

rSpec Mock Ordering

mock.shoul­d_r­eceive(:flip).once.ordered
mock.shoul­d_r­eceive(:flop).once.ordered

Badges

Nice Cheat Sheet Good Cheat Sheet Downloaded from Unusual Locations × 1

Comments (1)

DaveChild 10:02 28 Nov 2011

Wow, this is great! I really like how you've set out the info. Nice job!

Reply

Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.