Best Active_mocker_ruby code snippet using Mock.new
test_minitest_mock.rb
Source:test_minitest_mock.rb
1require 'minitest/autorun'2class TestMinitestMock < Minitest::Test3 parallelize_me!4 def setup5 @mock = Minitest::Mock.new.expect(:foo, nil)6 @mock.expect(:meaning_of_life, 42)7 end8 def test_create_stub_method9 assert_nil @mock.foo10 end11 def test_allow_return_value_specification12 assert_equal 42, @mock.meaning_of_life13 end14 def test_blow_up_if_not_called15 @mock.foo16 util_verify_bad "expected meaning_of_life() => 42, got []"17 end18 def test_not_blow_up_if_everything_called19 @mock.foo20 @mock.meaning_of_life21 assert @mock.verify22 end23 def test_allow_expectations_to_be_added_after_creation24 @mock.expect(:bar, true)25 assert @mock.bar26 end27 def test_not_verify_if_new_expected_method_is_not_called28 @mock.foo29 @mock.meaning_of_life30 @mock.expect(:bar, true)31 util_verify_bad "expected bar() => true, got []"32 end33 def test_blow_up_on_wrong_number_of_arguments34 @mock.foo35 @mock.meaning_of_life36 @mock.expect(:sum, 3, [1, 2])37 e = assert_raises ArgumentError do38 @mock.sum39 end40 assert_equal "mocked method :sum expects 2 arguments, got 0", e.message41 end42 def test_return_mock_does_not_raise43 retval = Minitest::Mock.new44 mock = Minitest::Mock.new45 mock.expect(:foo, retval)46 mock.foo47 assert mock.verify48 end49 def test_mock_args_does_not_raise50 skip "non-opaque use of ==" if maglev?51 arg = Minitest::Mock.new52 mock = Minitest::Mock.new53 mock.expect(:foo, nil, [arg])54 mock.foo(arg)55 assert mock.verify56 end57 def test_set_expectation_on_special_methods58 mock = Minitest::Mock.new59 mock.expect :object_id, "received object_id"60 assert_equal "received object_id", mock.object_id61 mock.expect :respond_to_missing?, "received respond_to_missing?"62 assert_equal "received respond_to_missing?", mock.respond_to_missing?63 mock.expect :===, "received ==="64 assert_equal "received ===", mock.===65 mock.expect :inspect, "received inspect"66 assert_equal "received inspect", mock.inspect67 mock.expect :to_s, "received to_s"68 assert_equal "received to_s", mock.to_s69 mock.expect :public_send, "received public_send"70 assert_equal "received public_send", mock.public_send71 mock.expect :send, "received send"72 assert_equal "received send", mock.send73 assert mock.verify74 end75 def test_expectations_can_be_satisfied_via_send76 @mock.send :foo77 @mock.send :meaning_of_life78 assert @mock.verify79 end80 def test_expectations_can_be_satisfied_via_public_send81 skip "Doesn't run on 1.8" if RUBY_VERSION < "1.9"82 @mock.public_send :foo83 @mock.public_send :meaning_of_life84 assert @mock.verify85 end86 def test_blow_up_on_wrong_arguments87 @mock.foo88 @mock.meaning_of_life89 @mock.expect(:sum, 3, [1, 2])90 e = assert_raises MockExpectationError do91 @mock.sum(2, 4)92 end93 exp = "mocked method :sum called with unexpected arguments [2, 4]"94 assert_equal exp, e.message95 end96 def test_expect_with_non_array_args97 e = assert_raises ArgumentError do98 @mock.expect :blah, 3, false99 end100 assert_equal "args must be an array", e.message101 end102 def test_respond_appropriately103 assert @mock.respond_to?(:foo)104 assert @mock.respond_to?(:foo, true)105 assert @mock.respond_to?('foo')106 assert !@mock.respond_to?(:bar)107 end108 def test_no_method_error_on_unexpected_methods109 e = assert_raises NoMethodError do110 @mock.bar111 end112 expected = "unmocked method :bar, expected one of [:foo, :meaning_of_life]"113 assert_equal expected, e.message114 end115 def test_assign_per_mock_return_values116 a = Minitest::Mock.new117 b = Minitest::Mock.new118 a.expect(:foo, :a)119 b.expect(:foo, :b)120 assert_equal :a, a.foo121 assert_equal :b, b.foo122 end123 def test_do_not_create_stub_method_on_new_mocks124 a = Minitest::Mock.new125 a.expect(:foo, :a)126 assert !Minitest::Mock.new.respond_to?(:foo)127 end128 def test_mock_is_a_blank_slate129 @mock.expect :kind_of?, true, [Fixnum]130 @mock.expect :==, true, [1]131 assert @mock.kind_of?(Fixnum), "didn't mock :kind_of\?"132 assert @mock == 1, "didn't mock :=="133 end134 def test_verify_allows_called_args_to_be_loosely_specified135 mock = Minitest::Mock.new136 mock.expect :loose_expectation, true, [Integer]137 mock.loose_expectation 1138 assert mock.verify139 end140 def test_verify_raises_with_strict_args141 mock = Minitest::Mock.new142 mock.expect :strict_expectation, true, [2]143 e = assert_raises MockExpectationError do144 mock.strict_expectation 1145 end146 exp = "mocked method :strict_expectation called with unexpected arguments [1]"147 assert_equal exp, e.message148 end149 def test_method_missing_empty150 mock = Minitest::Mock.new151 mock.expect :a, nil152 mock.a153 e = assert_raises MockExpectationError do154 mock.a155 end156 assert_equal "No more expects available for :a: []", e.message157 end158 def test_same_method_expects_are_verified_when_all_called159 mock = Minitest::Mock.new160 mock.expect :foo, nil, [:bar]161 mock.expect :foo, nil, [:baz]162 mock.foo :bar163 mock.foo :baz164 assert mock.verify165 end166 def test_same_method_expects_blow_up_when_not_all_called167 mock = Minitest::Mock.new168 mock.expect :foo, nil, [:bar]169 mock.expect :foo, nil, [:baz]170 mock.foo :bar171 e = assert_raises(MockExpectationError) { mock.verify }172 exp = "expected foo(:baz) => nil, got [foo(:bar) => nil]"173 assert_equal exp, e.message174 end175 def test_verify_passes_when_mock_block_returns_true176 mock = Minitest::Mock.new177 mock.expect :foo, nil do178 true179 end180 mock.foo181 assert mock.verify182 end183 def test_mock_block_is_passed_function_params184 arg1, arg2, arg3 = :bar, [1,2,3], {:a => 'a'}185 mock = Minitest::Mock.new186 mock.expect :foo, nil do |a1, a2, a3|187 a1 == arg1 &&188 a2 == arg2 &&189 a3 == arg3190 end191 mock.foo arg1, arg2, arg3192 assert mock.verify193 end194 def test_mock_block_is_passed_function_block195 mock = Minitest::Mock.new196 block = proc { 'bar' }197 mock.expect :foo, nil do |arg, &blk|198 arg == 'foo' &&199 blk == block200 end201 mock.foo 'foo', &block202 assert mock.verify203 end204 def test_verify_fails_when_mock_block_returns_false205 mock = Minitest::Mock.new206 mock.expect :foo, nil do207 false208 end209 e = assert_raises(MockExpectationError) { mock.foo }210 exp = "mocked method :foo failed block w/ []"211 assert_equal exp, e.message212 end213 def test_mock_block_throws_if_args_passed214 mock = Minitest::Mock.new215 e = assert_raises(ArgumentError) do216 mock.expect :foo, nil, [:a, :b, :c] do217 true218 end219 end220 exp = "args ignored when block given"221 assert_equal exp, e.message222 end223 def test_mock_returns_retval_when_called_with_block224 mock = Minitest::Mock.new225 mock.expect(:foo, 32) do226 true227 end228 rs = mock.foo229 assert_equal rs, 32230 end231 def util_verify_bad exp232 e = assert_raises MockExpectationError do233 @mock.verify234 end235 assert_equal exp, e.message236 end237 def test_mock_called_via_send238 mock = Minitest::Mock.new239 mock.expect(:foo, true)240 mock.send :foo241 mock.verify242 end243 def test_mock_called_via___send__244 mock = Minitest::Mock.new245 mock.expect(:foo, true)246 mock.__send__ :foo247 mock.verify248 end249 def test_mock_called_via_send_with_args250 mock = Minitest::Mock.new251 mock.expect(:foo, true, [1,2,3])252 mock.send(:foo, 1, 2, 3)253 mock.verify254 end255end256require "minitest/metametameta"257class TestMinitestStub < Minitest::Test258 parallelize_me!259 def setup260 super261 Minitest::Test.reset262 @tc = Minitest::Test.new 'fake tc'263 @assertion_count = 1264 end265 def teardown266 super267 assert_equal @assertion_count, @tc.assertions268 end269 class Time270 def self.now271 24272 end273 end274 def assert_stub val_or_callable275 @assertion_count += 1276 t = Time.now.to_i277 Time.stub :now, val_or_callable do278 @tc.assert_equal 42, Time.now279 end280 @tc.assert_operator Time.now.to_i, :>=, t281 end282 def test_stub_private_module_method283 @assertion_count += 1284 t0 = Time.now285 self.stub :sleep, nil do286 @tc.assert_nil sleep(10)287 end288 @tc.assert_operator Time.now - t0, :<=, 1289 end290 def test_stub_private_module_method_indirect291 @assertion_count += 1292 fail_clapper = Class.new do293 def fail_clap294 fail295 :clap296 end297 end.new298 fail_clapper.stub :fail, nil do |safe_clapper|299 @tc.assert_equal :clap, safe_clapper.fail_clap # either form works300 @tc.assert_equal :clap, fail_clapper.fail_clap # yay closures301 end302 end303 def test_stub_public_module_method304 Math.stub :log10, :stubbed do305 @tc.assert_equal :stubbed, Math.log10(1000)306 end307 end308 def test_stub_value309 assert_stub 42310 end311 def test_stub_block312 assert_stub lambda { 42 }313 end314 def test_stub_block_args315 @assertion_count += 1316 t = Time.now.to_i317 Time.stub :now, lambda { |n| n * 2 } do318 @tc.assert_equal 42, Time.now(21)319 end320 @tc.assert_operator Time.now.to_i, :>=, t321 end322 def test_stub_callable323 obj = Object.new324 def obj.call325 42326 end327 assert_stub obj328 end329 def test_stub_yield_self330 obj = "foo"331 val = obj.stub :to_s, "bar" do |s|332 s.to_s333 end334 @tc.assert_equal "bar", val335 end336 def test_dynamic_method337 @assertion_count = 2338 dynamic = Class.new do339 def self.respond_to?(meth)340 meth == :found341 end342 def self.method_missing(meth, *args, &block)343 if meth == :found344 false345 else346 super347 end348 end349 end350 val = dynamic.stub(:found, true) do |s|351 s.found352 end353 @tc.assert_equal true, val354 @tc.assert_equal false, dynamic.found355 end356 def test_mock_with_yield357 mock = Minitest::Mock.new358 mock.expect(:write, true) do359 true360 end361 rs = nil362 File.stub(:open, true, mock) do363 File.open("foo.txt", "r") do |f|364 rs = f.write365 end366 end367 @tc.assert_equal true, rs368 end369end...
mock_test.rb
Source:mock_test.rb
...7 8 include Mocha9 10 def test_should_set_single_expectation11 mock = Mock.new12 mock.expects(:method1).returns(1)13 assert_nothing_raised(ExpectationError) do14 assert_equal 1, mock.method115 end16 end 17 def test_should_build_and_store_expectations18 mock = Mock.new19 expectation = mock.expects(:method1)20 assert_not_nil expectation21 assert_equal [expectation], mock.expectations.to_a22 end23 24 def test_should_not_stub_everything_by_default25 mock = Mock.new26 assert_equal false, mock.everything_stubbed27 end28 29 def test_should_stub_everything30 mock = Mock.new31 mock.stub_everything32 assert_equal true, mock.everything_stubbed33 end34 35 def test_should_be_able_to_extend_mock_object_with_module36 mock = Mock.new37 assert_nothing_raised(ExpectationError) { mock.extend(Module.new) }38 end39 40 def test_should_be_equal41 mock = Mock.new42 assert_equal true, mock.eql?(mock)43 end44 45 if RUBY_VERSION < '1.9'46 OBJECT_METHODS = STANDARD_OBJECT_PUBLIC_INSTANCE_METHODS.reject { |m| m =~ /^__.*__$/ }47 else48 OBJECT_METHODS = STANDARD_OBJECT_PUBLIC_INSTANCE_METHODS.reject { |m| m =~ /^__.*__$/ || m == :object_id }49 end50 51 def test_should_be_able_to_mock_standard_object_methods52 mock = Mock.new53 OBJECT_METHODS.each { |method| mock.__expects__(method.to_sym).returns(method) }54 OBJECT_METHODS.each { |method| assert_equal method, mock.__send__(method.to_sym) }55 assert mock.__verified__?56 end57 58 def test_should_be_able_to_stub_standard_object_methods59 mock = Mock.new60 OBJECT_METHODS.each { |method| mock.__stubs__(method.to_sym).returns(method) }61 OBJECT_METHODS.each { |method| assert_equal method, mock.__send__(method.to_sym) }62 end63 64 def test_should_create_and_add_expectations65 mock = Mock.new66 expectation1 = mock.expects(:method1)67 expectation2 = mock.expects(:method2)68 assert_equal [expectation1, expectation2].to_set, mock.expectations.to_set69 end70 71 def test_should_pass_backtrace_into_expectation72 mock = Mock.new73 backtrace = Object.new74 expectation = mock.expects(:method1, backtrace)75 assert_equal backtrace, expectation.backtrace76 end77 78 def test_should_pass_backtrace_into_stub79 mock = Mock.new80 backtrace = Object.new81 stub = mock.stubs(:method1, backtrace)82 assert_equal backtrace, stub.backtrace83 end84 85 def test_should_create_and_add_stubs86 mock = Mock.new87 stub1 = mock.stubs(:method1)88 stub2 = mock.stubs(:method2)89 assert_equal [stub1, stub2].to_set, mock.expectations.to_set90 end91 92 def test_should_invoke_expectation_and_return_result93 mock = Mock.new94 mock.expects(:my_method).returns(:result)95 result = mock.my_method96 assert_equal :result, result97 end98 99 def test_should_not_raise_error_if_stubbing_everything100 mock = Mock.new101 mock.stub_everything102 result = nil103 assert_nothing_raised(ExpectationError) do104 result = mock.unexpected_method105 end106 assert_nil result107 end108 109 def test_should_raise_assertion_error_for_unexpected_method_call110 mock = Mock.new111 error = assert_raise(ExpectationError) do112 mock.unexpected_method_called(:my_method, :argument1, :argument2)113 end114 assert_match(/unexpected invocation/, error.message)115 assert_match(/my_method/, error.message)116 assert_match(/argument1/, error.message)117 assert_match(/argument2/, error.message)118 end119 120 def test_should_not_verify_successfully_because_not_all_expectations_have_been_satisfied121 mock = Mock.new122 mock.expects(:method1)123 mock.expects(:method2)124 mock.method1125 assert !mock.__verified__?126 end127 128 def test_should_increment_assertion_counter_for_every_verified_expectation129 mock = Mock.new130 131 mock.expects(:method1)132 mock.method1133 134 mock.expects(:method2)135 mock.method2136 137 assertion_counter = SimpleCounter.new138 139 mock.__verified__?(assertion_counter)140 141 assert_equal 2, assertion_counter.count142 end143 144 def test_should_yield_supplied_parameters_to_block145 mock = Mock.new146 parameters_for_yield = [1, 2, 3]147 mock.expects(:method1).yields(*parameters_for_yield)148 yielded_parameters = nil149 mock.method1() { |*parameters| yielded_parameters = parameters }150 assert_equal parameters_for_yield, yielded_parameters151 end152 153 def test_should_set_up_multiple_expectations_with_return_values154 mock = Mock.new155 mock.expects(:method1 => :result1, :method2 => :result2)156 assert_equal :result1, mock.method1157 assert_equal :result2, mock.method2158 end159 160 def test_should_set_up_multiple_stubs_with_return_values161 mock = Mock.new162 mock.stubs(:method1 => :result1, :method2 => :result2)163 assert_equal :result1, mock.method1164 assert_equal :result2, mock.method2165 end166 167 def test_should_keep_returning_specified_value_for_stubs168 mock = Mock.new169 mock.stubs(:method1).returns(1)170 assert_equal 1, mock.method1171 assert_equal 1, mock.method1172 end173 174 def test_should_keep_returning_specified_value_for_expects175 mock = Mock.new176 mock.expects(:method1).times(2).returns(1)177 assert_equal 1, mock.method1178 assert_equal 1, mock.method1179 end180 181 def test_should_match_most_recent_call_to_expects182 mock = Mock.new183 mock.expects(:method1).returns(0)184 mock.expects(:method1).returns(1)185 assert_equal 1, mock.method1186 end187 def test_should_match_most_recent_call_to_stubs188 mock = Mock.new189 mock.stubs(:method1).returns(0)190 mock.stubs(:method1).returns(1)191 assert_equal 1, mock.method1192 end193 def test_should_match_most_recent_call_to_stubs_or_expects194 mock = Mock.new195 mock.stubs(:method1).returns(0)196 mock.expects(:method1).returns(1)197 assert_equal 1, mock.method1198 end199 def test_should_match_most_recent_call_to_expects_or_stubs200 mock = Mock.new201 mock.expects(:method1).returns(0)202 mock.stubs(:method1).returns(1)203 assert_equal 1, mock.method1204 end205 206 def test_should_respond_to_expected_method207 mock = Mock.new208 mock.expects(:method1)209 assert_equal true, mock.respond_to?(:method1)210 end211 212 def test_should_not_respond_to_unexpected_method213 mock = Mock.new214 assert_equal false, mock.respond_to?(:method1)215 end216 217 def test_should_respond_to_methods_which_the_responder_does_responds_to218 instance = Class.new do219 define_method(:respond_to?) { |symbol| true }220 end.new221 mock = Mock.new222 mock.responds_like(instance)223 assert_equal true, mock.respond_to?(:invoked_method)224 end225 226 def test_should_not_respond_to_methods_which_the_responder_does_not_responds_to227 instance = Class.new do228 define_method(:respond_to?) { |symbol| false }229 end.new230 mock = Mock.new231 mock.responds_like(instance)232 assert_equal false, mock.respond_to?(:invoked_method)233 end234 235 def test_should_return_itself_to_allow_method_chaining236 mock = Mock.new237 assert_same mock.responds_like(Object.new), mock238 end239 240 def test_should_not_raise_no_method_error_if_mock_is_not_restricted_to_respond_like_a_responder241 instance = Class.new do242 define_method(:respond_to?) { true }243 end.new244 mock = Mock.new245 mock.stubs(:invoked_method)246 assert_nothing_raised(NoMethodError) { mock.invoked_method }247 end248 249 def test_should_not_raise_no_method_error_if_responder_does_respond_to_invoked_method250 instance = Class.new do251 define_method(:respond_to?) { |symbol| true }252 end.new253 mock = Mock.new254 mock.responds_like(instance)255 mock.stubs(:invoked_method)256 assert_nothing_raised(NoMethodError) { mock.invoked_method }257 end258 259 def test_should_raise_no_method_error_if_responder_does_not_respond_to_invoked_method260 instance = Class.new do261 define_method(:respond_to?) { |symbol| false }262 define_method(:mocha_inspect) { 'mocha_inspect' }263 end.new264 mock = Mock.new265 mock.responds_like(instance)266 mock.stubs(:invoked_method)267 assert_raises(NoMethodError) { mock.invoked_method }268 end269 270 def test_should_raise_no_method_error_with_message_indicating_that_mock_is_constrained_to_respond_like_responder271 instance = Class.new do272 define_method(:respond_to?) { |symbol| false }273 define_method(:mocha_inspect) { 'mocha_inspect' }274 end.new275 mock = Mock.new276 mock.responds_like(instance)277 mock.stubs(:invoked_method)278 begin279 mock.invoked_method280 rescue NoMethodError => e281 assert_match(/which responds like mocha_inspect/, e.message)282 end283 end284 285 def test_should_handle_respond_to_with_private_methods_param_without_error286 mock = Mock.new287 assert_nothing_raised{ mock.respond_to?(:object_id, false) }288 end289 290 def test_should_respond_to_any_method_if_stubbing_everything291 mock = Mock.new292 mock.stub_everything293 assert mock.respond_to?(:abc)294 assert mock.respond_to?(:xyz)295 end296 class FakeExpectation297 attr_reader :args298 def invoke(args)299 @args = args300 end301 def match?(*args)302 true303 end304 def invocations_allowed?305 true306 end307 end308 def test_should_record_invocations309 method = :a_method310 args = [1, 2]311 mock = Mock.new(method)312 expectation = FakeExpectation.new313 mock.expectations.add expectation314 mock.send(method, *args)315 assert_equal args, expectation.args316 end317 318end...
new
Using AI Code Generation
1 @mocked_methods = {}2 def method_missing(method_name, *args)3 @mocked_methods[method_name].call(*args)4 def mock(method_name, &block)
new
Using AI Code Generation
1 def self.mock_method(method_name, return_value)2 define_method(method_name) do3 mock.mock_method(:hello, "Hello World")
new
Using AI Code Generation
1 @mock.expect(:test1, 'test1')2 @mock.expect(:test2, 'test2')3 @mock.expect(:test3, 'test3')4 @mock.expect(:test4, 'test4')5 @mock.expect(:test5, 'test5')6 @mock.expect(:test6, 'test6')7 @mock.expect(:test7, 'test7')8 @mock.expect(:test8, 'test8')9 @mock.expect(:test9, 'test9')10 @mock.expect(:test10, 'test10')11 @mock.expect(:test11, 'test11')12 @mock.expect(:test12, 'test12')13 @mock.expect(:test13, 'test13')14 @mock.expect(:test14, 'test14')15 @mock.expect(:test15, 'test15')16 @mock.expect(:test16, 'test16')17 @mock.expect(:test17, 'test17')18 @mock.expect(:test18, 'test18')19 @mock.expect(:test19, 'test19')20 @mock.expect(:test20, 'test20')21 @mock.expect(:test21, 'test21')22 @mock.expect(:test22, 'test22')23 @mock.expect(:test23, 'test23')24 @mock.expect(:test24, 'test24')25 @mock.expect(:test25, 'test25')26 @mock.expect(:test26, 'test26')27 @mock.expect(:test27, 'test27')28 @mock.expect(:test28, 'test28')29 @mock.expect(:test29, 'test29')30 @mock.expect(:test30, 'test30')31 @mock.expect(:test31, 'test31')32 @mock.expect(:test32, 'test32')33 @mock.expect(:test33, 'test33')34 @mock.expect(:test34, 'test34')35 @mock.expect(:test35, 'test35')36 @mock.expect(:test36, 'test36')37 @mock.expect(:test37, 'test37')38 @mock.expect(:test38, 'test38')39 @mock.expect(:test39, 'test39')
new
Using AI Code Generation
1 mock = mock()2 mock.expects(:my_method).with(1).returns(2)3 assert_equal(2, mock.my_method(1))
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!