Yet Another Simple Stub & Mock library. This is inspired by Minitest::Mock and Override.
Mocoso meets the following criteria:
- Simplicity.
- 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.
Add this line to your application's Gemfile:
gem "mocoso"
And then execute:
$ bundle
Or install it yourself as:
$ gem install mocoso
A quick example (uses Cutest):
require "cutest"
require "mocoso"
include Mocoso
test "mocking a class method" do
user = User.new
expect(User, :find, with: [1], 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.
Fork the project with:
$ git clone git@github.com:frodsan/mocoso.git
To install dependencies, use:
$ bundle install
To run the test suite, do:
$ rake test
For bug reports and pull requests use GitHub.
Mocoso is released under the MIT License.