BETAmodules.com is in beta — open to partnerships & joint ventures.Build with us

mock_proxy

v0.4.6RubyGems· Ruby

Remember when RSpec had stub_chain? They removed it for good reasons but sometimes you just need it. Well, here it is, a proxy object. It doesn't actually mock anything for you (the name is just catchy) so you need to do that. But that actually comes with a lot of benefits: 1) It's compatable with any testing framework 2) You can use it for purposes other than testing, e.g. prototyping, code stubs 3) Flexibility in how you use it without overloading the number of methods you have to remember Here's an example usage: let(:model_proxy) do MockProxy.new(email_client: { create_email: { receive: proc {} } }) end before { allow(Model).to receive(:new).and_return model_proxy } it 'should call receive' do proc = MockProxy.get(model_proxy, 'email_client.create_email.receive') expect(proc).to receive(:call) run_system_under_test MockProxy.update(mock_proxy, 'email_client.create_email.validate!') { true } MockProxy.observe(mock_proxy, 'email_client.create_email.send') do |to| expect(to).to eq 'stop@emailing.me' end run_system_under_test2 end As you can see, the proc - which ends the proxy by calling the proc - can be used for anything. You can spy on the call count and arguments, mock methods, or just stub out code you don't want executed. Because it doesn't make any assumptions, it becomes very flexible. Simple, yet powerful, it's uses are infinite. Enjoy

The verdict
Abandoned. Last published 9 years ago. No recent activity — look for a maintained alternative.
No recent activity — look for a maintained alternative.
Live from the RubyGems registry · derived rules, not AI
How it scores
MaintenanceAbandoned
PopularityNiche
SecurityClean
LicensePermissive
DepsZero deps
Maintenance
Last published 9 years ago.
Popularity
67 downloads / week
Security
No known advisories for this version (OSV).
License
MIT
Dependencies
No runtime dependencies
Recent releases
  • 0.4.69 years ago
  • 0.4.19 years ago
  • 0.4.09 years ago
  • 0.3.010 years ago
  • 0.2.310 years ago
  • 0.2.210 years ago
  • 0.2.110 years ago
  • 0.2.010 years ago
mock_proxy — Remember when RSpec had stub_chain? They removed it for good reasons but sometimes you just need it. Well, here it is, a proxy object. It doesn't actually mock anything for you (the name is just catchy) so you need to do that. But that actually comes with a lot of benefits: 1) It's compatable with any testing framework 2) You can use it for purposes other than testing, e.g. prototyping, code stubs 3) Flexibility in how you use it without overloading the number of methods you have to remember Here's an example usage: let(:model_proxy) do MockProxy.new(email_client: { create_email: { receive: proc {} } }) end before { allow(Model).to receive(:new).and_return model_proxy } it 'should call receive' do proc = MockProxy.get(model_proxy, 'email_client.create_email.receive') expect(proc).to receive(:call) run_system_under_test MockProxy.update(mock_proxy, 'email_client.create_email.validate!') { true } MockProxy.observe(mock_proxy, 'email_client.create_email.send') do |to| expect(to).to eq 'stop@emailing.me' end run_system_under_test2 end As you can see, the proc - which ends the proxy by calling the proc - can be used for anything. You can spy on the call count and arguments, mock methods, or just stub out code you don't want executed. Because it doesn't make any assumptions, it becomes very flexible. Simple, yet powerful, it's uses are infinite. Enjoy (Ruby / RubyGems) · Modules