Bogus aims to make your unit tests more reliable by ensuring that you don't stub or mock methods that don't actually exist in the mocked objects.
class PostRepository
def store(title)
# save a new post in the database
end
end
class PostAdder < Struct.new(:post_repository)
def add(title)
post = post_repository.store(title)
# do some stuff with the post
end
end
require 'bogus/rspec'
describe PostAdder do
fake(:post_repository)
it "stores the post" do
post_adder = PostAdder.new(post_repository)
post_adder.add("Bogus is safe!")
expect(post_repository).to have_received.store("Bogus is safe!")
end
end
You can find more detailed (and executable) documentation on Relish.
MIT. See the LICENSE file.