Skip to content

Instantly share code, notes, and snippets.

@dstrelau
Created November 22, 2011 04:23
Show Gist options
  • Save dstrelau/1384888 to your computer and use it in GitHub Desktop.
Save dstrelau/1384888 to your computer and use it in GitHub Desktop.
require 'minitest/spec'
module MiniTest
module Rails
class Spec < MiniTest::Spec
alias :method_name :__name__
alias :pending :skip
class << self
def xit(desc='anonymous')
it(name) { skip 'DISABLED' }
end
def xdescribe(*attrs)
describe(*attrs) { xit }
end
alias :setup :before
alias :teardown :after
alias :context :describe
alias :background :before
alias :scenario :it
alias :xscenario :xit
alias :feature :describe
alias :xfeature :xdescribe
end
end
Acceptance = Class.new(Spec)
Controller = Class.new(Spec)
Helper = Class.new(Spec)
Mailer = Class.new(Spec)
Model = Class.new(Spec)
View = Class.new(Spec)
end
end
if $0 == __FILE__
require 'minitest/autorun'
class NormalSpec < MiniTest::Rails::Spec
describe 'a Spec' do
setup { @setup_run = true }
it 'runs setup' do
@setup_run.must_equal true
end
it 'allows pending to skip a spec' do
pending
raise
end
teardown { $teardown_run = true }
end
xdescribe 'a disabled feature' do
before do
raise 'FEE FI FO FUM'
end
it 'does not run examples' do
raise 'LA TI DA'
end
end
describe 'a spec with a disabled example' do
xit 'does not run the example' do
raise 'ZIPITY DO DA'
end
end
end
class AcceptanceTest < MiniTest::Rails::Acceptance
feature 'has an acceptance framework' do
background { @is_run = true }
scenario 'runs background before tests' do
assert @is_run
@is_run.must_equal true
end
end
xfeature 'can disable an entire feature' do
background do
raise 'FEE FI FO FUM'
end
scenario 'this never runs' do
raise 'LA TI DA'
end
end
feature 'can disabled individual scenarios' do
xscenario 'this never runs' do
raise 'ZIPITY DO DA'
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment