Tiny function for spying on function calls.
Lightweight Jest compatible spy implementation
spy on outgoing requests in node
A through2 wrapper to for simple stream.PassThrough spies.
A simple little class that helps making Observable testing a breeze
A minimal fork of nanospy, with more features
Hex Dumper (streaming, sync, and cli)
A through2 wrapper that just receives chunks and nothing else.
detect in-app browsers
A debugging library for RxJS
Just a spy library.
Spies for the Chai assertion library.
<a href="CODE_OF_CONDUCT.md"><img src="https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg" alt="Contributor Covenant" /></a>
spy and mock for simple testcase
Render preact components with access to the produced virtual dom for testing.
Lightweight Mock Object Testing For Javascript.
Minimal spy library with pass-through
Extends Chai with assertions for the Sinon.JS mocking framework.
mock mate, mock http request, fs access and so on.
Mocking library for TypeScript
Minimal mock function implementation for WebdriverIO Native Desktop Services
RxJS DevTools plugin for rxjs-spy
<p align="center"><a href="https://tridiamond.tech" target="_blank" rel="noopener noreferrer"><img width="100" src="https://img-blog.csdnimg.cn/20200930013332450.png" alt="TriDiamond logo"></a></p>
Promised out of order transform.
Spy is a mocking library that was made for the modern age. It supports only 2.1.0+. Spy by default will raise an error if you attempt to stub a method that doesn't exist or call the stubbed method with the wrong arity.
zenprofiler helps answer WHAT is being called the most. spy_on helps answer WHERE those calls are being made. ZenProfiler provides a faster version of the standard library ruby profiler. It is otherwise pretty much the same as before. spy_on provides a clean way to redefine a bottleneck method so you can account for and aggregate all the calls to it. % ruby -Ilib bin/zenprofile misc/factorial.rb 50000 Total time = 3.056884 Total time = 2.390000 total self self total % time seconds seconds calls ms/call ms/call name 50.70 1.64 1.64 50000 0.03 0.05 Integer#downto 19.63 2.27 0.63 200000 0.00 0.00 Fixnum#* 14.19 2.73 0.46 50000 0.01 0.05 Factorial#factorial 9.93 3.05 0.32 1 320.36 3047.10 Range#each 5.54 3.23 0.18 2 89.40 178.79 ZenProfiler#start_hook Once you know that Integer#downto takes 50% of the entire run, you can use spy_on to find it. (See misc/factorial.rb for the actual code): % SPY=1 ruby -Ilib misc/factorial.rb 50000 Spying on Integer#downto Integer.downto 50000: total 50000: ./misc/factorial.rb:6:in `factorial' via ./misc/factorial.rb:6:in `factorial'
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