0.08
No commit activity in last 3 years
No release in over 3 years
Alternative for setup/teardown dance.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

>= 0
~> 2.4.0
>= 0
>= 0

Runtime

~> 5.0
 Project Readme

minitest-around

Travis Gem Version

Gem | Source

Around block for minitest 5.X.

Alternative for setup/teardown dance.

Installation

gem install minitest-around

Usage

Unit tests

require 'minitest/autorun'
require 'minitest/around/unit'
require 'thread'

class MutexTest < Minitest::Test
  def around(&block)
    Mutex.new.synchronize(&block)
  end

  def test_synchronized
    # ...
  end
end

Spec

require 'minitest/autorun'
require 'minitest/around/spec'
require 'tmpdir'

describe "inside new directory" do
  around do |test|
    Dir.mktmpdir do |dir|
      @dir = dir
      Dir.chdir(dir) do
        test.call
      end
    end
  end

  it "is in new directory" do
    assert_equal @dir, Dir.pwd.sub("/private/var/", "/var/")
  end
end

Multiple before/after blocks

Minitest-around also enables the use of multiple before/after blocks, which normally don't work in minitest.

Caveats

  • Test bodies won't be run if you don't test.call inside +around+.
  • around runs inside a Fiber, so use Thread.get_thread_local / set_thread_local instead of Thread.current.[]

Minitest 5.X only

minitest-around currently supports only minitest 5.X.

Please see the mt4 branch for minitest 4.7.X support.

License

MIT License

Authors

Contributors

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Test

bundle exec rake test

Release

bundle exec rake bump:{patch|minor|major}
bundle exec rake release