Skip to content

Instantly share code, notes, and snippets.

@esmevane
Created April 27, 2013 01:38
Show Gist options
  • Save esmevane/5471538 to your computer and use it in GitHub Desktop.
Save esmevane/5471538 to your computer and use it in GitHub Desktop.
[ Ruby / Minitest ] Example of mocking + stubbing in minitest
require 'minitest/autorun'
class Origin
attr_accessor :name
def set_name name
self.name = name
end
end
class Character
attr_accessor :name, :origin
def initialize name
self.origin = Origin.new
self.name = name
end
def name_origin
origin.set_name name
end
def self.make name
new(name).name_origin
end
end
describe Character do
let(:name) { "Bob" }
let(:mock_arguments) { [name] }
let(:mock) { MiniTest::Mock.new }
let(:origin_instance) { Origin.new }
it "creates a new origin for itself" do
mock.expect :set_name, origin_instance, mock_arguments
Origin.stub(:new, mock) { Character.make name }
mock.verify
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment