aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
diff options
context:
space:
mode:
authorKasper Timm Hansen <kaspth@gmail.com>2015-07-08 21:37:27 +0200
committerKasper Timm Hansen <kaspth@gmail.com>2015-07-08 21:37:27 +0200
commita41698bc0b2c419d798cf8abc7d13667e3231483 (patch)
tree2cde2baf1154eaf5b49827a354e9a3412c42d768 /activesupport/lib/active_support
parentef2d7a69ece612762c199dc1a7fca0ff49400b45 (diff)
parent53f64c0fb27349541ded62946d66c429fbef86fa (diff)
downloadrails-a41698bc0b2c419d798cf8abc7d13667e3231483.tar.gz
rails-a41698bc0b2c419d798cf8abc7d13667e3231483.tar.bz2
rails-a41698bc0b2c419d798cf8abc7d13667e3231483.zip
Merge pull request #20784 from kaspth/great-expectations
Add method call assertions for internal use.
Diffstat (limited to 'activesupport/lib/active_support')
-rw-r--r--activesupport/lib/active_support/testing/method_call_assertions.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/testing/method_call_assertions.rb b/activesupport/lib/active_support/testing/method_call_assertions.rb
new file mode 100644
index 0000000000..0d7d62341c
--- /dev/null
+++ b/activesupport/lib/active_support/testing/method_call_assertions.rb
@@ -0,0 +1,30 @@
+module ActiveSupport
+ module Testing
+ module MethodCallAssertions # :nodoc:
+ private
+ def assert_called(object, method_name, message = nil, times: 1)
+ times_called = 0
+
+ object.stub(method_name, -> { times_called += 1 }) { yield }
+
+ error = "Expected #{method_name} to be called #{times} times, " \
+ "but was called #{times_called} times"
+ error = "#{message}.\n#{error}" if message
+ assert_equal times, times_called, error
+ end
+
+ def assert_called_with(object, method_name, args = [], returns: nil)
+ mock = Minitest::Mock.new
+ mock.expect(:call, returns, args)
+
+ object.stub(method_name, mock) { yield }
+
+ mock.verify
+ end
+
+ def assert_not_called(object, method_name, message = nil, &block)
+ assert_called(object, method_name, message, times: 0, &block)
+ end
+ end
+ end
+end \ No newline at end of file