Mocoso meets the following criteria:
- Always restore stubbed methods to their original implementations.
- Doesn't allow to stub or mock undefined methods.
- Doesn't monkey-patch any class or object.
- Test-framework agnostic. No integration code.
A quick example (uses Cutest):
require "cutest" require "mocoso" include Mocoso test "mocking a class method" do user = User.new expect(User, :find, with: , return: user) do assert_equal user, User.find(1) end assert_equal nil, User.find(1) end test "stubbing an instance method" do user = User.new stub(user, :valid?, true) do assert user.valid? end assert !user.valid? end
Check Official Documentation for more details.
$ gem install mocoso