Skip to content

Instantly share code, notes, and snippets.

@rmg
Forked from jodosha/adapter_test.rb
Last active December 18, 2015 20:58
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rmg/5843562 to your computer and use it in GitHub Desktop.
Save rmg/5843562 to your computer and use it in GitHub Desktop.
require 'test_helper'
shared_examples_for 'An Adapter' do
describe '#read' do
before do
@adapter.write(@key = 'whiskey', @value = "Jameson's")
end
it 'reads a given key' do
@adapter.read(@key).must_equal(@value)
end
end
end
require 'test_helper'
describe Memory do
before do
@adapter = Memory.new('memory://127.0.0.1')
end
after do
@adapter.clear
end
it_behaves_like 'An Adapter'
describe '#to_s' do
it 'returns the name' do
@adapter.to_s.must_equal('Memory')
end
end
end
require 'test_helper'
describe Redis do
before do
@adapter = Redis.new('redis://127.0.0.1:6379')
end
after do
@adapter.clear
end
it_behaves_like 'An Adapter'
describe '#to_s' do
it 'returns the name' do
@adapter.to_s.must_equal('Redis')
end
end
end
gem 'minitest'
require 'minitest/spec'
MiniTest::Spec.class_eval do
def self.shared_examples
@shared_examples ||= {}
end
end
def shared_examples_for(desc, &block)
MiniTest::Spec.shared_examples[desc] = block
end
def it_behaves_like(desc, &block)
describe desc do
instance_eval &MiniTest::Spec.shared_examples[desc]
instance_eval &block if block_given?
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment