Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

syntax cheat sheets for stubs and messae expectations

  • Loading branch information...
commit c42ea70dab95d0283416eb93415fbb8d6bacb13f 1 parent 3c9bf80
David Chelimsky dchelimsky authored
59 features/message_expectations/README.md
View
@@ -0,0 +1,59 @@
+We're working on improving these docs. In the mean time, here's a cheat sheet
+to cover the basics.
+
+ # create a double
+ obj = double()
+
+ # expect a message
+ obj.should_receive(:message)
+
+ # specify a return value
+ obj.should_receive(:message) { 'this is the value to return' }
+
+### Argument constraints
+
+#### Explicit arguments
+
+ obj.should_receive(:message).with('an argument')
+ obj.should_receive(:message).with('more_than', 'one_argument')
+
+#### Argument matchers
+
+ obj.should_receive(:message).with(anything())
+ obj.should_receive(:message).with(an_instance_of(Money))
+ obj.should_receive(:message).with(hash_including(:a => 'b'))
+
+#### Regular expressions
+
+ obj.should_receive(:message).with(/abc/)
+
+### Counts
+
+ obj.should_receive(:message).once
+ obj.should_receive(:message).twice
+ obj.should_receive(:message).exactly(3).times
+
+ obj.should_receive(:message).at_least(:once)
+ obj.should_receive(:message).at_least(:twice)
+ obj.should_receive(:message).at_least(n).times
+
+ obj.should_receive(:message).at_most(:once)
+ obj.should_receive(:message).at_most(:twice)
+ obj.should_receive(:message).at_most(n).times
+
+### Raising/Throwing
+
+ obj.should_receive(:message) { raise "this error" }
+ obj.should_receive(:message) { throw :this_symbol }
+
+### Ordering
+
+ obj.should_receive(:one).ordered
+ obj.should_receive(:two).ordered
+
+### Arbitrary handling
+
+ obj.should_receive(:message) do |arg1, arg2|
+ # set expectations about the args in this block
+ # and set a return value
+ end
40 features/method_stubs/README.md
View
@@ -0,0 +1,40 @@
+We're working on improving these docs. In the mean time, here's a cheat sheet
+to cover the basics.
+
+ # create a double
+ obj = double()
+
+ # stub a method
+ obj.stub(:message) # returns obj
+
+ # specify a return value
+ obj.stub(:message) { 'this is the value to return' }
+
+### Argument constraints
+
+#### Explicit arguments
+
+ obj.stub(:message).with('an argument')
+ obj.stub(:message).with('more_than', 'one_argument')
+
+#### Argument matchers
+
+ obj.stub(:message).with(anything())
+ obj.stub(:message).with(an_instance_of(Money))
+ obj.stub(:message).with(hash_including(:a => 'b'))
+
+#### Regular expressions
+
+ obj.stub(:message).with(/abc/)
+
+### Raising/Throwing
+
+ obj.stub(:message) { raise "this error" }
+ obj.stub(:message) { throw :this_symbol }
+
+### Arbitrary handling
+
+ obj.stub(:message) do |arg1, arg2|
+ # set expectations about the args in this block
+ # and set a return value
+ end
Please sign in to comment.
Something went wrong with that request. Please try again.